【发布时间】:2022-01-14 21:53:12
【问题描述】:
这是包含 id、姓名、作者、主题和发布日期的 csv 文件示例内容。
2105001,Engineering Mechanics,Bela Imre Sandor,Engineering Mechanics,1983
2105002,Statics and Mechanics of Materials (2nd Edition),"William F. Riley, Leroy D. Sturges, Don H. Morris",Engineering Mechanics,2001
2105003,A Concise Introduction to Mechanics of Rigid Bodies,Loulin Huang,Engineering Mechanics,2011
2105004,Dynamics of Particles and Rigid Bodies,Mohammed F. Daqaq,Engineering Mechanics,2018
2105005,Engineering Sciences,Marcialito Modina Valenzona,Science,2002
这里是代码。问题是即使有匹配结果,由于某些行不匹配,代码不断转向“else”。
- 如果该行包含关键字 = 打印那些结果并忽略不匹配的那些。
- 如果没有其他匹配项,则转到其他项。
def linear_search_name():
bookname=input("Enter Title of the Book: ")
bookfile=csv.reader(open("books.csv", "r"))
for row in bookfile:
if bookname.casefold() in row[1].casefold():
print("ID:", row[0],"\n", row[1],"\n",row[2],"\n",row[3],"\n",row[4],"\n")
else:
print("try again")
linear_search_name()
菜鸟问题,但我希望有人能提供帮助。非常感谢!!
【问题讨论】:
-
您只检查 CSV 的第一行。也不要从自身调用函数,而是使用循环。
-
代码扫描指定行上csv的所有行。问题是如果第一行匹配,第三行匹配,它会显示该结果。但如果第二行不匹配,它会去其他..
-
不,它没有。它查看第 1 行,如果不匹配,则通过在
else子句中再次调用该函数从头开始。
标签: python csv if-statement search