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 文件。

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

你可能感兴趣的:(Python系列,python,开发语言,服务器,编程,面试)