0

我正在尝试创建一个文本集合的双峰图,以便我可以按单词或按文本的单词投影一个网络。我的一位同事表示,如果我可以将所有文件保存在一个格式如下的 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 新手,这对我来说是很多学习的源泉。我在这里是否走在正确的轨道上,如果是这样,我错过了什么?

4

1 回答 1

1

您需要将数据保存just_wordsfiles. 在这种情况下,我使用元组列表而不是字典,但如果您愿意,仍然可以使用字典。:-)

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)
于 2013-04-27T20:27:06.687 回答