gpt4 book ai didi

python - 读取 6.9GB 的文件导致段错误

转载 作者:行者123 更新时间:2023-11-28 19:49:39 25 4
gpt4 key购买 nike

我试图在 Linux 上打开最新的日语维基百科数据库以便在 Python 3.3.1 中阅读,但是这个短程序出现了 Segmentation fault (core dumped) 错误:

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 的“报纸中最常用的汉字”的现代版本。 :)

最佳答案

不要一次阅读整篇文章。即使你的 Python 发行版被编译为 64 位程序(在 32 位程序中分配超过 4 GB 的虚拟内 stub 本不可能),即使你有足够的 RAM 来存储它,它仍然是一个糟糕的一次将其全部读入内存的想法。

一个简单的选择是一次读取一行并处理每一行:

with open("jawiki-latest-pages-articles.xml") as f:
for line in f:
# Process one line

或者,您可以在固定大小的 block 中处理它:

while True:
data = f.read(65536) # Or any other reasonable-sized chunk
if not data:
break
# Process one chunk of data. Make sure to handle data which overlaps
# between chunks properly, and make sure to handle EOF properly

关于python - 读取 6.9GB 的文件导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16619644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com