Python知识点:如何使用Python进行文件压缩与解压缩

在Python中,可以使用内置的zipfiletarfile模块来进行文件的压缩与解压缩。下面是如何使用这两个模块进行操作的基本示例:

1. 使用 zipfile 模块

zipfile 模块可以用于处理ZIP文件格式的压缩与解压缩。

压缩文件
import zipfile

# 压缩文件
def compress_files(zip_filename, *file_names):
    with zipfile.ZipFile(zip_filename, 'w') as zipf:
        for file in file_names:
            zipf.write(file)

# 示例
compress_files('archive.zip', 'file1.txt', 'file2.txt')
解压缩文件
import zipfile

# 解压缩文件
def decompress_files(zip_filename, extract_to_folder):
    with zipfile.ZipFile(zip_filename, 'r') as zipf:
        zipf.extractall(extract_to_folder)

# 示例
decompress_files('archive.zip', 'extracted_folder')

2. 使用 tarfile 模块

tarfile 模块可以用于处理TAR文件及其衍生格式(如GZ、BZ2、XZ)的压缩与解压缩。

压缩文件
import tarfile

# 压缩文件
def compress_files(tar_filename, *file_names):
    with tarfile.open(tar_filename, 'w') as tarf:
        for file in file_names:
            tarf.add(file)

# 示例
compress_files('archive.tar', 'file1.txt', 'file2.txt')
解压缩文件
import tarfile

# 解压缩文件
def decompress_files(tar_filename, extract_to_folder):
    with tarfile.open(tar_filename, 'r') as tarf:
        tarf.extractall(path=extract_to_folder)

# 示例
decompress_files('archive.tar', 'extracted_folder')

3. 压缩与解压缩 GZ/BZ2/XZ 格式

使用tarfile模块也可以处理这些压缩格式,只需指定模式(例如'w:gz'表示Gzip压缩):

Gzip 压缩
import tarfile

# 压缩为Gzip格式
def compress_files_gz(tar_filename, *file_names):
    with tarfile.open(tar_filename, 'w:gz') as tarf:
        for file in file_names:
            tarf.add(file)

# 示例
compress_files_gz('archive.tar.gz', 'file1.txt', 'file2.txt')
解压缩 Gzip 格式
import tarfile

# 解压缩Gzip格式
def decompress_files_gz(tar_filename, extract_to_folder):
    with tarfile.open(tar_filename, 'r:gz') as tarf:
        tarf.extractall(path=extract_to_folder)

# 示例
decompress_files_gz('archive.tar.gz', 'extracted_folder')

总结

  • zipfile 用于处理 .zip 文件。
  • tarfile 用于处理 .tar.tar.gz.tar.bz2.tar.xz 文件。

根据你的需要选择合适的模块和方法来进行文件的压缩与解压缩。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超哥同学

赠人玫瑰 手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值