我將4GB的Wiktionary XML數據轉儲分解爲更小的文件,沒有重疊,使用Python處理它並保存不同的頁面(...)。拆分文件大大增加了它的大小
相同的信息分散在不同的文件中,膨脹到18+ GB。
爲什麼會這樣呢?有沒有辦法避免這種情況?
import os
import re
import subprocess
subprocess.call(['mkdir', 'WIKTIONARY_WORDS_DUMP'])
# English Wiktionary (which noneless contains many foreign words!)
f = open('enwiktionary-20151020-pages-articles.xml', 'r')
page = False
number = 1
for i, l in enumerate(f):
if '<page>' in l:
word_file = open(os.path.join('WIKTIONARY_WORDS_DUMP', str(number)+'.xml'), 'a')
word_file.write(l)
page = True
number += 1
elif '</page>' in l:
word_file.write(l)
word_file.close()
page = False
elif page:
word_file.write(l)
word_file.close()
f.close()
正以不同的方式和/或不同的字符編碼序列化的新文件?這真是唯一的解釋。 (另外,我可能會建議不要拆分文件,而是考慮使用SAX解析器處理它?) – Tomalak
不要這麼想。當我在wiktionary.xml和entry.xml上運行文件-bi時,都返回text/html; charset = utf-8 – zadrozny
您正在以'a'(追加)模式打開小文件。如果在文件仍然存在的情況下再次運行此程序,則會將原始信息再次寫入該文件。 –