Python中如何将多个文件压缩为一个gzip文件
发布时间:2023-12-16 18:38:34
在Python中,可以使用gzip模块来压缩文件为gzip格式。要将多个文件压缩为一个gzip文件,可以使用tarfile模块将多个文件打包为tar文件,然后使用gzip模块将tar文件压缩为gzip格式。
下面是一个使用例子,将多个文件压缩为一个gzip文件:
import tarfile
import gzip
def compress_files(file_list, output_file):
# 创建tar文件
with tarfile.open(output_file, "w") as tar:
for file in file_list:
# 将文件添加到tar文件中
tar.add(file)
# 压缩tar文件为gzip格式
with open(output_file, 'rb') as tar:
with gzip.open(output_file + '.gz', 'wb') as gz:
gz.writelines(tar)
# 待压缩的文件列表
files = ['file1.txt', 'file2.txt', 'file3.txt']
# 压缩后的输出文件名
output_file = 'compressed_file.tar'
# 压缩文件
compress_files(files, output_file)
print("文件已成功压缩为gzip格式!")
在上面的代码中,compress_files函数接受一个文件列表和一个输出文件名作为参数。首先,使用tarfile模块创建一个tar文件,并将文件列表中的每个文件添加到tar文件中。然后,通过打开tar文件和gzip文件,将tar文件中的内容写入gzip文件。最后,将压缩后的文件后缀名修改为.gz。
运行上述代码后,将会生成一个名为compressed_file.tar.gz的gzip压缩文件,其中包含了file1.txt、file2.txt和file3.txt这三个文件。
需要注意的是,如果待压缩的文件比较大,这种方式可能会占用更多的内存。如果想要处理更大的文件,可以考虑使用shutil模块中的make_archive函数来打包和压缩文件。
