в python, необходимо сохранить все результаты, а не только последний результат - PullRequest
0 голосов
/ 02 мая 2020

это рабочий код для подсчета слов в файле, но проблема в том, что (result.csv) содержит только последний результат, а не все результаты.

как должен выглядеть код после исправления?

Спасибо

import re
import string

frequency = {}


out_filename = "result.csv"
headers = "word,requency \n"

document_text = open('joined.xml', 'r')
text_string = document_text.read().lower()
match_pattern = re.findall(r'\b[a-z]{3,15}\b', text_string)


for word in match_pattern:
    count = frequency.get(word,0)
    frequency[word] = count + 1

frequency_list = frequency.keys()

for words in frequency_list:
    print(words, frequency[words])

with open(out_filename, "w") as fw:
  fw.write(headers)
  fw.write(words + ", " + str(frequency[words]) + "\n")

1 Ответ

1 голос
/ 02 мая 2020

Вы должны выполнить итерацию по всем парам слов-частот и записать каждую в отдельной строке.

with open(out_filename, "w") as fw:
  fw.write(headers)
  for word, freq in frequency.items():
      fw.write(word + ", " + str(freq) + "\n")
...