欢迎访问宙启技术站
智能推送

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.txtfile2.txtfile3.txt这三个文件。

需要注意的是,如果待压缩的文件比较大,这种方式可能会占用更多的内存。如果想要处理更大的文件,可以考虑使用shutil模块中的make_archive函数来打包和压缩文件。