Есть ли способ поиска нескольких групп слов в CSV с python? - PullRequest
0 голосов
/ 04 марта 2020

Хорошо, я ищу два списка ключевых слов в файле 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()

Кажется, все работает, за исключением того, что второй набор слов (ie: "mil") дает мне пустой результат. Кроме того, он создает файл CSV, но он также пуст.

1 Ответ

0 голосов
/ 04 марта 2020

Я не уверен, но я думаю, что проблема очень похожа на этот пост: Почему я не могу дважды вызвать read () для открытого файла? . Проблема заключалась в том, что вы не могли прочитать открытый файл дважды, так как курсор чтения оставлен в конце документа.

Если я прав, вы можете открыть файл внутри for keywords in listOfKeyWords:. l oop или используйте что-то вроде file_reader.seek (0). Я никогда раньше не использовал seek (0), но так как это принятый ответ в другом посте stackoverflow, я предполагаю, что он тоже должен работать.

...