2016-03-30 42 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 params但仍然沒有成功。

編輯:顯然我的代碼適用於除我以外的所有人。這是我的output

+5

您的代碼對我來說工作得很好:https://asciinema.org/a/39x9vuca48gd7fieugpkicbbt – larsks

+0

您是否嘗試過使用絕對路徑? –

+0

我也確認。它爲我工作。 – Hun

回答

0

成功!問題是

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() 

沒有if語句將有同樣的結果。

相關問題