有没有办法用 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 中接受的答案,我认为它也应该有效。