[英]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.