有没有办法用 python 在 csv 中搜索多组单词?
Is there a way to search for multiple groups of words in a csv with python?
好的,所以我正在 csv 文件中搜索两个关键字列表,并试图将它们保存为两个不同的文档。
这是我的脚本。
import csv
with open ("kijiji_db.csv", "r", encoding="utf-8") as file:
file_reader = csv.reader(file)
listOfKeyWords = [["universite de montreal", "udem", "udm"], ["mil"]]
for keywords in listOfKeyWords:
resultats = []
for keyword in keywords:
for row in file_reader:
if (keyword.lower() in row[5].lower() or keyword.lower() in row[1].lower()) and [row[1], row[2], row[3], row[4], row[5], row[7], row[8], row[9]] not in resultats:
#print ("trouvé:", keyword)
resultats.append([row[1], row[2], row[3], row[4], row[5], row[7], row[8], row[9]])
print(resultats)
with open("resultats_" + keywords[0] + ".csv", "w", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerows(resultats)
file.close()
除了第二组单词(即:"mil")给我一个空结果外,一切似乎都正常。此外,它会创建 csv 文件,但它也是空的。
我不确定,但我认为问题与此非常相似post:Why can't I call read() twice on an open file?。这里的问题是您无法读取打开的文件两次,因为读取光标留在文档的末尾。
如果我是对的,您可以在 for keywords in listOfKeyWords:
循环内打开文件或使用 file_reader.seek(0) 之类的东西。我以前从未使用过 seek(0),但由于它是另一个 Whosebug post 中接受的答案,我认为它也应该有效。
好的,所以我正在 csv 文件中搜索两个关键字列表,并试图将它们保存为两个不同的文档。
这是我的脚本。
import csv
with open ("kijiji_db.csv", "r", encoding="utf-8") as file:
file_reader = csv.reader(file)
listOfKeyWords = [["universite de montreal", "udem", "udm"], ["mil"]]
for keywords in listOfKeyWords:
resultats = []
for keyword in keywords:
for row in file_reader:
if (keyword.lower() in row[5].lower() or keyword.lower() in row[1].lower()) and [row[1], row[2], row[3], row[4], row[5], row[7], row[8], row[9]] not in resultats:
#print ("trouvé:", keyword)
resultats.append([row[1], row[2], row[3], row[4], row[5], row[7], row[8], row[9]])
print(resultats)
with open("resultats_" + keywords[0] + ".csv", "w", encoding="utf-8") as file:
writer = csv.writer(file)
writer.writerows(resultats)
file.close()
除了第二组单词(即:"mil")给我一个空结果外,一切似乎都正常。此外,它会创建 csv 文件,但它也是空的。
我不确定,但我认为问题与此非常相似post:Why can't I call read() twice on an open file?。这里的问题是您无法读取打开的文件两次,因为读取光标留在文档的末尾。
如果我是对的,您可以在 for keywords in listOfKeyWords:
循环内打开文件或使用 file_reader.seek(0) 之类的东西。我以前从未使用过 seek(0),但由于它是另一个 Whosebug post 中接受的答案,我认为它也应该有效。