0

我需要在 python 中将多个文件压缩成一个 bz2 文件。我试图找到一种方法,但我找不到答案。可能吗?

4

3 回答 3

1

这就是 tarball 的用途。该tar格式将文件打包在一起,然后压缩结果。Python 可以很容易地使用模块同时完成这两项工作tarfile其中传递一个“模式”打开一个新的 tar 文件以进行无缝压缩'w:bz2'写入。bz2超级简单的例子:

import tarfile

with tarfile.open('mytar.tar.bz2', 'w:bz2') as tar:
    for file in mylistoffiles:
        tar.add(file)

如果您不需要对操作进行太多控制,则shutil.make_archive可能是一种可能的替代方法,它将简化将整个目录树压缩为的代码:

shutil.make_archive('mytar', 'bztar', directory_to_compress)
于 2018-10-04T12:49:21.737 回答
0

看看 python 的 bz2 库。确保先谷歌并阅读文档!

https://docs.python.org/2/library/bz2.html#bz2.BZ2Compressor

于 2018-10-04T12:42:58.097 回答
0

你有导入包:

import tarfile,bz2

和 multilfile 以 bz 格式压缩

tar = tarfile.open("save the directory.tar.bz", "w:bz2")
for f in ["gti.png","gti.txt","file.taz"]:
    tar.add(os.path.basename(f))
tar.close()

让用于 zip 格式的文件在目录中打开文件

一种用途

os.path.basename(src_file)

打开一个仅用于文件

于 2019-09-08T18:19:34.787 回答