我在别处找不到这个问题的答案,所以我将继续把它贴在这里:
我有一个Python脚本,它将读取文本文件的内容,将其内容拆分为单词,然后输出一个CSV文件,该文件将文本缩减为单词频率列表。(最后,我将插入一行来删除单词,但我还没有走到那么远。)接下来我想用这个脚本将它指向一个文本文件目录,并让它迭代这些文件,为每个TXT文件生成一个相应的CSV文件。在
以下是我目前所掌握的情况:#! /usr/bin/env python
import glob
import re
import csv
files = {}
for fpath in glob.glob("*.txt"):
with open(fpath) as f:
words = re.split('\s+', f.read().lower())
freq_dic = {}
punctuation = re.compile(r'[.?!,":;]')
for word in words:
word = punctuation.sub("", word)
try:
freq_dic[word] += 1
except:
freq_dic[word] = 1
word_list = [(val, key) for key, val in freq_dic.items()]
sorted(word_list, reverse=True)
with outputfile as myfileout:
writer = csv.writer(myfileout)
writer.writerows(sorted(word_list, reverse=True))
我希望你能告诉我,我只是从工作脚本中“提高”了,但是我有点迷路了。我对文件输出上的with循环感到非常自豪,但我也不愿意将输入转换为with循环。在
当我在一个包含20个文本的目录中运行这个脚本时,我得到了以下结果:
^{pr2}$