Python: как создать словарь слов из списка файлов со словами в качестве ключей и именами файлов в качестве значений?

#python #file #dictionary

#python #файл #словарь

Вопрос:

У меня есть список слов, которые я извлек из нескольких файлов, и мне нужно создать словарь таким образом, чтобы слово было ключом, соответствующим списку имен файлов, в которых слово появляется (может быть более одного) в качестве его значения.

У меня уже есть код для извлечения всех слов из файлов и удаления пробелов, запятых и т.д. Итак, это список слов.

Вывод должен выглядеть примерно так:

 {'on': ['file1.txt'], 'got': ['file1.txt'],'hello': ['file1.txt'],'a': ['file1.txt', 'file2.txt'], 'bad': ['file1.txt', 'file2.txt']}
 

Как я могу этого добиться?

Комментарии:

1. Перебирайте все слова одного файла и для каждого слова добавляйте имя файла в список в словаре со словом в качестве ключа.

Ответ №1:

Я думаю, ты хочешь чего-то подобного.

Примечание: Этот файл скрипта python должен находиться в том же месте, что и файлы txt.

 
files = os.listdir()
txt_files = []
for file in files:
    if file.endswith('.txt'):
        txt_files.append(file)

words = dict()

for file in txt_files:
    with open(file,'r',encoding='utf-8') as file:
        word_list = file.readlines()
        words[str(file.name)] = word_list

print(words)
 

Ответ №2:

Надеюсь, это сработает

 import os

wordLst = ['on', 'got','hello','a',
       'bad']

dic = {}

for word in wordLst:
    dic.update({word: []})

path = r'yourPath'
filelst = os.listdir(path)

for file in filelst:

if '.txt' not in file: continue

f = open(path   '\'   file, 'r')
txt = f.readlines()

for key in dic.keys():
    if key in txt:
        dic[key].append(file)
 

Комментарии:

1. кстати, wordLst соответствует списку слов, который у вас есть, поэтому вам нужно заменить его своим фактическим списком. Вам также необходимо поместить в переменную path путь к каталогу, в котором находятся текстовые файлы