2014-02-27 20 views
2

我正在使用sci-kit中的load_files函數學習加載2個簡單的文本文檔。在scikit-learn中,load_files函數正在讀取不需要的文本文件

設置很痛苦簡單。我的文件被命名爲file1file2。 第一個文件由文本pig cow chicken組成,而第二個文件由文本pig car truck組成。

他們都住在這裏:

/home/me/Dropbox/test 

到目前爲止好。

現在,我用的是load_files功能,因此,

text_data = load_files('/home/me/Dropbox/test', encoding='latin-1') 

接下來,我檢查
text_data.filenames
......它原來我收到一些奇怪的額外的文件!

[ '/home/me/Dropbox/test/folder1/document2.txt' 
    '/home/me/Dropbox/test/folder1/document2.txt~' 
    '/home/me/Dropbox/test/folder1/document1.txt~' 
    '/home/me/Dropbox/test/folder1/document1.txt'] 

我檢查了
text_data.data
並獲得:

[u'pig\ncar\ntruck\n', u'', u'', u'pig\ncow\nchicken\n'] 

我認爲有一些隱藏的文件,或者臨時文件,或那些五花八門的東西怎麼回事。我的文件都沒有打開。我重新啓動了iPython,重新啓動了筆記本電腦等。我使用ls -lart,並在目錄中看到它們。

我使用的是Ubuntu 13.10。

我想知道一個很好的方法來擺脫它們,這將解決在這個特定情況下的問題,但除此之外,我想知道爲什麼會發生這種情況,以及如何確保它不會發生再次。這些隱藏文件背後的機制是什麼,爲什麼該函數加載它們?

在此先感謝。

謝謝!

+0

以'〜'結尾的文件通常是由某些文本編輯器製作的備份文件。你爲什麼不把它們刪除?在unix的保管箱文件夾中,通常還會自動創建一個'.dropbox'文件 - 但它似乎並未包含在您的列表中。 –

+0

這些文件未被隱藏。隱藏文件的名稱以句點開頭,IIRC'load_files'將跳過這些名稱。 –

回答

3

這些文件可能是文本編輯器(如vim)自動創建的備份文件。

要遞歸刪除與~結尾的所有文件在當前目錄下,你可以使用這個命令:

find -name "*~" -delete 

現在的問題是你是否真的想用sklearn.datasets.load_files載入的文件。它的目的是加載文本文件的類別作爲子文件夾名稱,這似乎不是你的目錄的情況。如果你只是想加載兩個簡單的文本文件,是不是內置的open函數就足夠了?

+0

呃。爲什麼哦爲什麼像vim這樣一個古怪而又看似無害的編輯器爲用戶的文件帶來這樣的自由? 我在這裏使用一個愚蠢的例子;我確實打算將類別用作子文件夾名稱。 –