Python:将目录中的所有文件写入一个cdv文件

时间:2013-04-27 20:13:13

标签: python text-processing

我正在尝试创建一个文本集合的双峰图,这样我就可以按文字或单词按文本投影任意文本的网络。我的一位同事表示,如果我能将所有文件都放在下面格式的单个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新手,我学到了很多东西。我在这里是正确的轨道,如果是的话,我错过了什么?

1 个答案:

答案 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)