gpt4 book ai didi

python - 使用 Python 提取(而不是读取)大型 gzip 文件

转载 作者:行者123 更新时间:2023-11-30 23:32:06 25 4
gpt4 key购买 nike

我有一个 python 脚本,可以自动/协调几个大型 gzip 文件的传输和处理。我需要能够解压缩它们(比如在 shell 中运行 gunzip file.log.gz),但不需要(或不想)读入它们 - 它们将被传递给另一个需要解压文件的命令行工具。

问题是,gzip 模块似乎只关心将 gzip 压缩的文件读入 python 中。我尝试使用 subprocess.Popen 在文件上调用gunzip,但这不起作用,因为我因未从 shell 调用它而收到错误,或者因在 shell 外调用它而出现任何其他错误(是的,我有尝试在 Popen 中使用 shell=True)。

我开始在这里抓狂,因为这应该是一个相对简单的操作,我已经到处寻找答案。再说一次,我不关心将文件内容读入 Python,打开存档并逐行写出太慢(文件压缩后大约有 6-8GB)。

我在这里缺少什么?

提前致谢。

最佳答案

plumbum非常适合您的用例。它使 Python 脚本中类似 shell 的部分更易于处理。

您可以运行gunzip,如下所示:

from plumbum.cmd import gunzip
gunzip(filename)

如果获取解压缩文件的第二个命令支持从 stdin 读取(例如,由传统的 - 参数指示),则可以使用管道,而不是解压缩文件:

from plumbum.cmd import zcat
(zcat[filename] | second_command['-'])()

关于python - 使用 Python 提取(而不是读取)大型 gzip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19548651/

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