0

テキストのコレクションのバイモーダル グラフを作成して、単語によるテキストまたはテキストによる単語のネットワークを投影できるようにしようとしています。私の同僚は、以下の形式の 1 つの 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_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)
于 2013-04-27T20:27:06.687 に答える