gpt4 book ai didi

Python:如何创建 tar 文件并使用外部模块动态压缩它,使用 tarfile 模块中不可用的不同压缩方法?

转载 作者:行者123 更新时间:2023-11-28 21:51:07 24 4
gpt4 key购买 nike

我正在尝试设置一个代码来将几个大文件(从几十到几百 GB 不等)打包到一个存档中。 tarfile 模块支持的压缩方法对于如此大的数据量来说有点慢,所以我想使用一些外部压缩模块,如 lz4 来达到更好的压缩速度。不幸的是,我找不到如何创建 tar 文件并使用 lz4 动态压缩它以避免创建临时 tar 文件的方法。 tarfile 模块的文档说有一种方法可以打开未压缩的流以使用 'w|' ​​进行写入模式。是将 tar 文件直接传输到 lz4 模块的方法吗?如果是这样,使用它的正确方法是什么?非常感谢。

最佳答案

根据我们上面的对话。

import tarfile
import subprocess

p = subprocess.Popen(['lz4', '-'], stdin=subprocess.PIPE)

tar = tarfile.open(fileobj=p.stdin, mode="w|")

从那里您可以执行通常的 tar.addfile。仅供引用:正如我在谈话中所说。 GNU tar 可以自动检测 gz 和 bz2 但不能自动检测 lz4。只是一张纸条。所以你必须做 lz4 -c -d stdin.lz4 | tar xf - 提取文件。如果您只是执行 tar xf,它将失败。

关于Python:如何创建 tar 文件并使用外部模块动态压缩它,使用 tarfile 模块中不可用的不同压缩方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30838479/

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