-1
У меня есть словарь, который имеет вид:связывая один словарь к другому в питона
d[class name]=(list of files)
например:
d[earn]=(6,7,4)
где 6.txt, 7.txt и 4.txt являются файлы, относящиеся к классу «заработать»
Теперь мне нужно создать еще один словарь d2, что:
d2[earn]=(12,3,2,17)
где
- 12 является число раз слово «зарабатывающих» происходит в 6.txt,
- 3 является число раз слово «зарабатывающих» происходит в 7.txt,
- 4 - количество раз, когда слово «заработать» происходит в 4.txt
- 17 - это количество раз, когда слово «заработать» происходит во всех трех файлах, т.е. сумма.
Вот мой код:
import collections
import sys
import os
import re
sys.stdout=open('dictionary.txt','w')
from collections import Counter
from glob import glob
folderpath='d:/individual-articles'
counter=Counter()
with open('topics.txt') as f:
d= collections.defaultdict(list)
for line in f:
value, *keys = line.strip().split('~')
for key in filter(None, keys):
d[key].append(value+".txt")
filepaths = glob(os.path.join(folderpath,'*.txt'))
def words_generator(fileobj):
for line in fileobj:
for word in line.split():
yield word
word_count_dict = {}
for file in filepaths:
f = open(file,"r")
words = words_generator(f)
for word in words:
if word not in word_count_dict:
word_count_dict[word] = {"total":0}
if file not in word_count_dict[word]:
word_count_dict[word][file] = 0
word_count_dict[word][file] += 1
word_count_dict[word]["total"] += 1
for k in word_count_dict.keys():
for filename in word_count_dict[k]:
if filename == 'total': continue
counter.update(filename)
for word, counts in word_count_dict.items():
print(word, counts['total'])
Мне нужно напечатать d2, но мой код не работает.
Заметим, что 'f.read (COUNT) (слово)' может иметь неожиданные результаты, как:. ' "Foobar" .Count (» foo ') -> 1', предпочитаем 'regex'. –
@AshwiniChaudhary Да, я понял, что после публикации добавлен 'f.read(). Split(). Count (word)' под ним. Использование регулярного выражения может быть лучше, OP может это понять. – HennyH
я получаю эту EROR: Файл "C: \ Python33 \ access_dict.py", строка 36, в с открытым (имя_файла), а е: FileNotFoundError: [Errno 2] Нет такого файла или каталога: '16951' –
radhika