本文将详细介绍如何使用Python进行文件压缩和解压缩,包括zip和tar文件的创建、添加和读取;还将介绍如何使用gzip进行文件压缩和解压缩以及如何使用shutil模块进行文件夹的压缩和解压缩。
一、zip文件的创建、添加和读取
zip是一种常见的压缩格式,Python的zipfile模块提供了操作zip文件的功能。下面是zip文件的创建、添加和读取示例代码:
import zipfile
# 创建zip文件
with zipfile.ZipFile('example.zip', 'w') as myzip:
myzip.write('file1.txt')
myzip.write('file2.txt')
# 添加文件到zip中
with zipfile.ZipFile('example.zip', 'a') as myzip:
myzip.write('file3.txt')
# 读取zip中的文件列表
with zipfile.ZipFile('example.zip', 'r') as myzip:
print(myzip.namelist()) # 打印文件列表
# 读取zip中的单个文件
with zipfile.ZipFile('example.zip', 'r') as myzip:
with myzip.open('file1.txt') as myfile:
print(myfile.read()) # 打印文件内容
二、tar文件的创建、添加和读取
tar文件通常用于Unix和Linux系统中,Python的tarfile模块提供了操作tar文件的功能。下面是tar文件的创建、添加和读取示例代码:
import tarfile
# 创建tar文件
with tarfile.open('example.tar', 'w') as mytar:
mytar.add('file1.txt')
mytar.add('file2.txt')
# 添加文件到tar中
with tarfile.open('example.tar', 'a') as mytar:
mytar.add('file3.txt')
# 读取tar中的文件列表
with tarfile.open('example.tar', 'r') as mytar:
print(mytar.getnames()) # 打印文件列表
# 读取tar中的单个文件
with tarfile.open('example.tar', 'r') as mytar:
with mytar.extractfile('file1.txt') as myfile:
print(myfile.read()) # 打印文件内容
三、gzip文件的压缩和解压缩
gzip是一种常见的压缩格式,Python的gzip模块提供了操作gzip文件的功能。下面是gzip文件的压缩和解压缩示例代码:
import gzip
# 压缩文件
with open('file1.txt', 'rb') as myfile:
with gzip.open('file1.txt.gz', 'wb') as myzip:
myzip.write(myfile.read())
# 解压文件
with gzip.open('file1.txt.gz', 'rb') as myzip:
with open('file1.txt', 'wb') as myfile:
myfile.write(myzip.read())
四、shutil模块进行文件夹的压缩和解压缩
shutil模块是Python标准库中的一个文件操作模块,提供了对文件和文件夹的操作。下面是使用shutil模块进行文件夹的压缩和解压缩的示例代码:
import shutil
# 压缩文件夹
shutil.make_archive('example', 'zip', 'example_folder')
# 解压文件夹
shutil.unpack_archive('example.zip', 'example_unzip_folder')
上述代码中,make_archive用于压缩文件夹,其中第一个参数是压缩后的文件名前缀,第二个参数是压缩格式,第三个参数是要压缩的文件夹名称;unpack_archive用于解压文件夹,其中第一个参数是要解压的文件名,第二个参数是要解压到的文件夹名称。