繁体   English   中英

在python中将多个文件压缩成一个bz2文件

[英]compress multiple files into a bz2 file in python

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

这就是tarball的用途。 tar格式将文件打包在一起,然后压缩结果。 使用tarfile模块 ,Python可以轻松地一次完成这两项操作,在其中传递'w:bz2'的“模式”将打开一个新的tar文件,以进行无缝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)

看一下python的bz2库。 请确保先搜索并阅读文档!

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

您具有以下目的的导入包:

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)

打开一个仅用于文件

Python 的标准 lib zipfile可以处理多个文件,并且从 2001 年开始就支持 bz2 压缩。

import zipfile
sourcefiles = ['a.txt', 'b.txt']
with zipfile.ZipFile('out.zip', 'w') as outputfile:
   for sourcefile in sourcefiles:
      outputfile.write(sourcefile, compress_type=zipfile.ZIP_BZIP2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM