【发布时间】:2020-10-16 17:35:09
【问题描述】:
我一直在编写 Python 代码来使用 Python 列表中包含的单词 (word_list) 来查找文本文档中包含的单词的频率分布。程序计算频率分布,我可以将它们打印到屏幕上,但是当我尝试将频率分布写入 .csv 文件,它只重复写入FreqDist 的最后一行,因为目录中有许多文本文件。我的代码如下
CIK_List = []
for filename in glob.glob(os.path.join(test_path, '*.txt')):
CIK = re.search(r"\_([0-9]+)\_", filename) # extract the CIK from the filename
path = nltk.data.find(filename)
raw = open(path, 'r').read()
tokens = word_tokenize(raw)
words = [h.lower() for h in tokens]
f_dist = nltk.FreqDist([s.lower() for s in words])
print(f_dist)
wordcount = collections.Counter()
CIK_List.append(CIK)
with open(file_path, 'w+', newline= '') as csv_file:
writer = csv.writer(csv_file)
writer.writerow(["CIK"] + word_list)
for m in word_list:
print([CIK.group(1)], [f_dist[m]], end='')
for val in CIK_List:
writer.writerows(([val.group(1)] + [f_dist[m] for m in word_list],))
【问题讨论】:
-
您的代码不完整,因为您没有在任何地方定义
CIK_List。filename来自哪里?这整个代码块是否在一个循环中,类似于for filename in ...:?请编辑您的问题并包含重现问题所需的所有代码。如果您的代码不完整,我们可能会尝试自己填补空白,弄错并为您写一个无益的答案。 -
我已按要求添加了额外的代码片段。