python - 使用用户输入的关键字在 CSV 文件中搜索项目
问题描述
所以我得到了一个 CSV 文件,它对大约 1000 首歌曲进行了分类,给出的数据是Artist
、Album
、Song_Title
和Duration
。
我通过执行以下操作导入 CSV 文件:
column_names = ['artist', 'album', 'song_title', 'duration']
track_list = pd.read_csv('/Users/Basel/Desktop/Class Files/JukeBoxHero/music-collection.csv', names=column_names,
header=None)
作为参考,这是 CSV 文件中的一行示例:
Aerosmith,A Little South Of Sanity Disc 1,Falling In Love (Is Hard On The Knees),209
我尝试使用的功能是允许用户输入搜索词并获取名称中包含搜索词的所有歌曲的列表,如下所示:
def findSongs(songList):
searchTerm=input("searching for?")
for songs in songList:
if searchTerm in songs:
print("-----------------------")
print("Artist: " + currentSong['artist'])
print("Album: " + currentSong['album'])
print("Title: " + currentSong['song_title])
print("Duration: " + currentSong['duration'] + "seconds")
但是,当我尝试使用print(findSongs(track_list))
终端调用该函数时,似乎总是输出None
。我的猜测是我构建 for 循环的方式有问题,但我花了很多时间尝试不同的变量并尝试使用整数索引都无济于事。
解决方案
尝试这个:
def findSongs(songList):
searchTerm=input("searching for?")
songList = songList[songList.song_title.str.contains(searchTerm)].to_numpy()
for songs in songList:
print("-----------------------")
print("Artist: " + songs[0])
print("Album: " + songs[1])
print("Title: " + songs[2])
print("Duration: " + str(songs[3]))
findSongs(track_list)
输出:
searching for?Falling
-----------------------
Artist: Aerosmith
Album: A Little South Of Sanity Disc 1
Title: Falling In Love (Is Hard On The Knees)
Duration: 209
更新后的版本:
def findSongs(songList):
while True:
searchTerm=input("searching for ( exit to exit )?")
if searchTerm == 'exit':
break
songList = songList[songList.song_title.str.contains(searchTerm)].to_numpy()
if len(songList) == 0:
print("No Song found ")
continue
for songs in songList:
print("-----------------------")
print("Artist: " + songs[0])
print("Album: " + songs[1])
print("Title: " + songs[2])
print("Duration: " + str(songs[3]))
推荐阅读
- c# - 无法定义两个对象之间的关系,因为它们在更新记录时附加到不同的 ObjectContext 对象
- azure - 为什么 web.config 中的 HttpErrors 在 Azure 中对包含“%25f2”的 URL 的工作方式与本地不同?
- python - 如何在多行中拆分行并在熊猫中添加新列?
- ios - 如何使用flutter,wordpress在我的应用程序中添加拉动刷新?
- excel - 具有多个范围的 VLookup
- python - 向 Folium 地图添加标题或文本
- flutter - 如何在容器小部件中添加多行?
- javascript - 移动背景并能够拖动
- android - 如何将用户 ID 从我的适配器传递到活动
- components - 何时在 UML 组件图中使用端口?