我想搜索一个csv文件,该文件将从前两列的列表中查找关键字。当找到关键词时,我设法让它工作,但是如果找不到关键词,则想要留言。不幸的是,“未找到”的消息出现了四次。我只是希望这一次出来。你能帮忙吗?它正在做的是再次绕过每个关键词。
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
print(row[2])
break
else:
print ("not found")
break
f.close
答案 0 :(得分:3)
只有在整个文件中找不到关键字时,您似乎想要发出“未找到”消息吗?
试试这个:
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
found = False;
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
print(row[2])
found = True
break
if not found:
print ("not found")
break
f.close()
重点是您应该使用另一个变量来跟踪您正在寻找的状态。
答案 1 :(得分:3)
您可以像这样使用for.. else
here:
for keyword in keywords:
if keyword == row[0] or keyword == row[1]:
break
else:
print("not found")
答案 2 :(得分:0)
import csv
keywords=["none","blank","off","screen","blank"]
f=open("CSVSolutions.csv")
for row in csv.reader(f):
if row[0] in keywords or row[1] in keywords:
print(row[2])
else:
print ("not found")
f.close
我认为避免嵌套完全更容易。迭代关键字列表两次似乎更慢,但它基本上相当于每个项目进行两次比较。