我試圖打開日本最新的維基百科數據庫在Linux上閱讀在Python 3.3.1,但我得到一個Segmentation fault (core dumped)
誤差這套短節目:讀一個6.9GB文件會導致分段錯誤
with open("jawiki-latest-pages-articles.xml") as f:
text = f.read()
文件本身是相當大的:
-rw-r--r-- 1 fredrick users 7368183805 May 17 20:19 jawiki-latest-pages-articles.xml
因此它似乎有一個上限,我有多長的字符串可以存儲。解決這種情況的最佳方法是什麼?
我的最終目標是計算文件中最常見的字符,有點像現代版本的Jack Halpern的「報紙上最常用的漢字」。 :)
你的機器有多少內存? – BlackVegetable
其他人正在解決你的迭代問題 - 顯然最好是逐行讀取,而不是試圖在一個字符串中保存6+ GB。要計算字符,請查看標準庫的計數器:http://docs.python.org/2/library/collections.html#collections.Counter –
有點偏離主題:沒有使用gzip壓縮的任何特定原因,for例? XML壓縮得很好,對於這樣一個非常大的文件,你可以通過壓縮來節省3到4GB。然後你可以用'gzip.open'打開它,就像你在這裏使用'open'一樣,gzip也可以快速解壓,所以性能可以接受(甚至可能比未壓縮的更快)。 – kampu