2016-03-30 2 views
4

python 3のテキスト文書を含むフォルダからの読み取りを試みています。これは、LingSpamの電子メールスパムデータセットの変更です。私はすべての1893のテキストドキュメント名を返すように書いたコードを期待していますが、コードは最初の420のファイル名を返します。なぜファイル名の総数が足りないのか分かりません。何か案は?なぜglob.globループがフォルダ内のすべてのテキストファイルを反復処理しないのですか?

if not os.path.exists('train'): # download data 
    from urllib.request import urlretrieve 
    import tarfile 
    urlretrieve('http://cs.iit.edu/~culotta/cs429/lingspam.tgz', 'lingspam.tgz') 
    tar = tarfile.open('lingspam.tgz') 
    tar.extractall() 
    tar.close() 
abc = [] 
for f in glob.glob("train/*.txt"): 
    print(f) 
    abc.append(f) 
print(len(abc)) 

globパラメータを変更しようとしましたが、まだ成功しませんでした。

編集:明らかに私のコードは、私以外の誰にとっても機能します。ここに私ですoutput

+5

あなたのコードは私のためにうまく動作します:https://asciinema.org/a/39x9vuca48gd7fieugpkicbbt – larsks

+0

絶対パスを使ってみましたか? –

+0

私も確認します。それは私のために働いた。 – Hun

答えて

0

成功!問題は、私の出力を確認するには

if not os.path.exists('train'): # download data 

だった、私は実際に自分のコンピュータにファイルをダウンロードしていた、とこの行は、フォルダが存在し、それが存在しなかったかどうかをチェックするので、それが問題を引き起こしました。私は私のマシンのからファイルを削除し、それが必要として、私はif文なし

from urllib.request import urlretrieve 
    import tarfile 
    urlretrieve('http://cs.iit.edu/~culotta/cs429/lingspam.tgz', 'lingspam.tgz') 
    tar = tarfile.open('lingspam.tgz') 
    tar.extractall() 
    tar.close() 

を実行しているが、同じ結果を持っているだろう疑いがあるものの、今では、動作します。

関連する問題