使用Python编写的文件压缩与解压案例
Python提供了多种文件压缩与解压的库,其中最常用的是zipfile和tarfile库。下面是一个使用Python编写的文件压缩与解压的案例,包括对单个文件和多个文件的压缩和解压。
首先,我们需要导入相应的库:
import os import zipfile import tarfile
#### 文件压缩
##### 压缩单个文件
以下是一个压缩单个文件的示例,通过zipfile.ZipFile类来实现:
def compress_file(file_path, target_path):
with zipfile.ZipFile(target_path, 'w') as zipf:
zipf.write(file_path, os.path.basename(file_path))
该函数接受两个参数,file_path表示要压缩的文件路径,target_path表示压缩文件的目标路径。调用zipfile.ZipFile创建一个Zip文件对象,通过write方法将要压缩的文件添加到压缩文件中。
##### 压缩多个文件
以下是一个压缩多个文件的示例,通过遍历文件列表,并使用zipfile.ZipFile类来实现:
def compress_files(file_paths, target_path):
with zipfile.ZipFile(target_path, 'w') as zipf:
for file_path in file_paths:
zipf.write(file_path, os.path.basename(file_path))
该函数接受两个参数,file_paths表示要压缩的文件路径列表,target_path表示压缩文件的目标路径。同样地,调用zipfile.ZipFile创建一个Zip文件对象,并使用write方法将文件逐个添加到压缩文件中。
#### 文件解压
##### 解压单个文件
以下是一个解压单个文件的示例,通过zipfile.ZipFile类来实现:
def decompress_file(zip_path, target_dir):
with zipfile.ZipFile(zip_path, 'r') as zipf:
zipf.extractall(target_dir)
该函数接受两个参数,zip_path表示要解压的压缩文件路径,target_dir表示解压后的目标文件夹路径。调用zipfile.ZipFile创建一个Zip文件对象,并使用extractall方法解压文件到目标文件夹。
##### 解压多个文件
以下是一个解压多个文件的示例,通过zipfile.ZipFile类来实现:
def decompress_files(zip_path, target_dir):
with zipfile.ZipFile(zip_path, 'r') as zipf:
for file_info in zipf.infolist():
if file_info.filename.endswith('/'):
continue
file_info.filename = os.path.basename(file_info.filename)
zipf.extract(file_info, target_dir)
该函数接受两个参数,zip_path表示要解压的压缩文件路径,target_dir表示解压后的目标文件夹路径。遍历压缩文件中的文件列表,对于每个文件,通过extract方法解压到目标文件夹。
这里需要注意的是,解压多个文件时,需要对文件的路径进行处理,以保证解压后的文件路径正确。
以上就是使用Python编写的文件压缩与解压的案例。可以根据具体的需求,使用上述的函数来实现文件压缩和解压的功能。
