处理非常大(超过 30GB)文本文件并显示进度的最佳方法是什么

Raj*_*j K 4 python data-processing

[新手问题]

你好,

我正在处理一个超过 30GB 的巨大文本文件。

我必须对每一行进行一些处理,然后以 JSON 格式将其写入数据库。当我读取文件并使用“for”循环时,我的计算机在处理数据大约 10% 后崩溃并显示蓝屏。

我目前正在使用这个:

f = open(file_path,'r')
for one_line in f.readlines():
    do_some_processing(one_line)
f.close()
Run Code Online (Sandbox Code Playgroud)

另外,我如何显示到目前为止已处理多少数据的总体进度?

非常感谢大家。

g.d*_*d.c 5

文件句柄是可迭代的,您可能应该使用上下文管理器。尝试这个:

with open(file_path, 'r') as fh:
  for line in fh:
    process(line)
Run Code Online (Sandbox Code Playgroud)

这可能就足够了。

  • @Dhaivat - 我认为你不明白这段代码在做什么,它确实非常有效。比一次读取整个文件内容要好得多,如“read()”或“readlines()”。 (3认同)