【发布时间】:2015-08-30 13:17:31
【问题描述】:
我正在尝试设置一个代码来将几个大文件(从数十到数百 GB)打包到一个存档中。 tarfile 模块支持的压缩方式对于这么大的数据量有点慢,所以我想使用一些外部压缩模块,如 lz4 来获得更好的压缩速度。不幸的是,我找不到如何创建 tar 文件并使用 lz4 即时压缩它以避免创建临时 tar 文件的方法。 tarfile 模块的文档说,有一种方法可以打开未压缩的流以使用 'w|' 进行写入模式。是将tar文件直接流式传输到lz4模块的方式吗?如果是这样,使用它的正确方法是什么?非常感谢。
【问题讨论】:
-
不幸的是,没有。该问题涵盖了 tarfile 模块本身可用的标准压缩方法。我试图了解如何使用 tarfile 模块中不可用的一些方法即时压缩 tar 文件。我已经编辑了我的问题的标题,使其更加清晰。谢谢。
-
好的,在这种情况下,这是真正的问题。问题已取消标记...
-
嗯,但 GNU tar 只识别 gz 和 bz2。我了解 lz4 在速度方面更好,但您正在创建不兼容的存档。
-
@KenjiNoguchi ,不确定我是否理解您的意思。据我所知,在类 unix 系统中,tar 传统上一直被用作将文件保存在一个文件中的容器——无论您是否使用内置压缩。如果您将未压缩的 tar 打包到 lz4 中,您始终可以通过 lz4 解压缩它,然后只需通过 tar 解压缩生成的文件。谢谢!
标签: python compression tar tarfile