#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 путь к каталогу, в котором находятся текстовые файлы