2014-11-06 41 views
-1

我已經刪除所有代碼並將所有文件添加到一個大文本文件中(3,89GB).. 但我仍然不能刪除所有重複的單詞,因爲我無法將整個文件加載到['list']我想刪除dict.txt中的所有重複單詞。我此刻的代碼加載10個000000字EN列表,在列表中刪除重複....刪除多文本wordlist中的重複項python

count = 0 
strings = [] 
dict_o = open ('./dict/dict.txt','r') 
for line in dict_o: 
    strings.append(line) 
    count+=1 
    if count > 10000000: 
    strings_s =set(strings) 
    strings_so = sorted(strings_s) 
    out = open('./dict/dict1.txt','a').writelines(strings_so) 
    count = 0 
    strings= [] 
+1

短的,有代表性的例子是有很大的幫助 – inspectorG4dget 2014-11-06 20:28:35

+0

什麼是具有多重目的文件?將單詞放入簡單的數據庫(例如SQLite)似乎更有意義。 – bernie 2014-11-06 20:34:06

+0

嘿嘿..如果我沒有誤解你的想法是隻有一個大文本文件....測試打開並閱讀一個文件大小爲4GB的文件會給MemoryError ... – nkf4 2014-11-07 00:05:49

回答

0

很多方法可以做到這一點,最懶的方法是實例則列表中 - 通過你的文字解析文件並檢查每個單詞是否存在於列表中。如果是,則刪除它。如果沒有,則將其添加到列表中並繼續。

還有很多方法可以刪除它,最懶的解決方案是創建一個最終字符串,並將每個不重複的單詞連接起來。然後最後將該字符串寫入文件。

正如在評論中指出,您的文本文件的例子將有很大的幫助,以拿出一個更好的解決方案

+0

我現在編輯我的文章... – nkf4 2014-11-06 21:22:16

+0

如果所有的行都在一個單獨的文件中,我使用set()我會得到內存錯誤,所以我有他們分裂,所以蟒蛇可以閱讀主題.. – nkf4 2014-11-07 00:25:54

+0

我可能有時間來幫助你今晚;如果你仍然需要它。你可以發佈你現在的代碼嗎?以及更好的解釋你需要什麼? – 2014-11-07 18:10:43