我正在尝试创建一个文本集合的双峰图,这样我就可以按文字或单词按文本投影任意文本的网络。我的一位同事表示,如果我能将所有文件都放在下面格式的单个csv文件中,那么就有一个工作流程可以处理其余的事情:
textfile1, words words words
textfile2, words words words
我写了以下脚本:
#! /usr/bin/env python
# a script to convert all text files in a directory to the format:
# filename, words from file (no punctuation)
import glob
import re
files = {}
for fpath in glob.glob("*.txt"):
with open(fpath) as f:
just_words = re.sub("[^a-zA-Z'-]"," ",f.read())
with open("mastertext.csv", "w") as f:
for fname in files:
print >> f , "%s,%s"%(fname,just_words)
这个脚本将运行并生成输出文件,但是输出文件是空白的,我没有得到任何错误响应 - 作为Python新手,我学到了很多东西。我在这里是正确的轨道,如果是的话,我错过了什么?
答案 0 :(得分:1)
您需要将just_words
中的数据保存到files
。在这种情况下,我使用元组列表而不是字典,但如果您愿意,仍然可以使用字典。 :-)
files = []
for fpath in glob.glob("*.txt"):
with open(fpath) as f:
just_words = re.sub("[^a-zA-Z'-]"," ",f.read())
files.append((fpath, just_words))
with open("mastertext.csv", "w") as f:
for fname, just_words in files:
print >> f , "%s,%s"%(fname,just_words)