我在別處找不到這個問題的答案,所以我將繼續把它貼在這里:
我有一個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}$