【发布时间】:2013-03-01 20:15:17
【问题描述】:
我有一个非常大的 zip 文件,它被拆分为多个部分作为拆分存档,存档中只有一个文件。我没有足够的资源将这些档案组合在一起或提取它们(原始文本文件将近 1TB)。
我想逐行解析文本文件,最好使用如下内容:
import zipfile
for zipfilename in filenames:
with zipfile.ZipFile(zipfilename) as z:
with z.open(...) as f:
for line in f:
print line
这可能吗?如果是这样,我该如何阅读文本文件:
- 不使用太多内存(将整个文件加载到内存中显然是不可能的)
- 无需解压任何 zip 文件
- (理想情况下)不合并 zip 文件
提前感谢您的帮助。
【问题讨论】:
-
哇,这是一个非常大的文本文件,你的 zip 文件有多少部分?为什么这么大?
-
这是可能的,但我很确定如果你在 Python 中这样做,你还需要一个低温时间室来等待,因为这需要很长时间才能完成。或者得到一个大型集群。
-
可能会有超过 3500 个零件,而且是巨大的。它是一个研究数据集,包含 1000 万篇左右研究论文的全文内容。
-
@AdamBarthelson,我不需要大部分内容,所以我希望它不会非常低效。我认为可以跳过 99% 的行。
-
您究竟需要什么信息?