gpt4 book ai didi

python - 在 Python 中增量读取大型多部分压缩文本文件

转载 作者:太空狗 更新时间:2023-10-30 00:15:03 24 4
gpt4 key购买 nike

我有一个非常大的 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

这可能吗?如果是这样,我如何读取文本文件:

  1. 不使用太多内存(将整个文件加载到内存中显然是不可能的)
  2. 不解压缩任何 zip 文件
  3. (理想情况下)不合并 zip 文件

预先感谢您的帮助。

最佳答案

我来试试。

如果您的 zip 文件是根据 Zip 文件格式的所谓“拆分存档”,您将无法使用 Python 的 zipfile 库或 unzip 终端命令读取它们.

另一方面,如果您正在处理使用 split 命令或类似的字节拆分设备拆分的单个 zip 存档,您可能能够提取并读取其用 Python 即时生成内容。

您必须编写一个“类似文件”的自定义类,该类将接受 seek() 和 read() 方法(可能还有其他方法)并在拆分块上执行它们。

seek() 将需要计算要读取的 zip 文件,打开它(如果它不是当前文件仍然打开)并使用偏移量的差异对其执行 seek()。

read() 将从当前打开的 block 中读取,处理文件结束条件,这将导致它打开下一个 block 并完成对其的读取。

在您编写并测试该类之后,只需调用 ZipFile 构造函数并将您的类的一个实例作为要打开的“虚拟 zip”文件对象传递即可。

关于python - 在 Python 中增量读取大型多部分压缩文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393041/

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