在Python中,可以使用内置的zipfile
和tarfile
模块来进行文件的压缩与解压缩。下面是如何使用这两个模块进行操作的基本示例:
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
文件。
根据你的需要选择合适的模块和方法来进行文件的压缩与解压缩。