在Python中,您可以使用zipfile
库来解压ZIP文件并过滤文件
import zipfile import os def filter_files(zip_path, filter_func): with zipfile.ZipFile(zip_path, 'r') as zip_ref: # 获取ZIP文件内所有文件和目录名 file_names = zip_ref.namelist() # 使用过滤函数过滤文件名 filtered_file_names = [name for name in file_names if filter_func(name)] # 解压过滤后的文件到指定目录 with zipfile.ZipFile('filtered_zip.zip', 'w') as filtered_zip_ref: for file_name in filtered_file_names: filtered_zip_ref.write(zip_ref.open(file_name), arcname=file_name) # 示例过滤函数,仅提取所有以'.txt'结尾的文件 def filter_txt_files(file_name): return file_name.endswith('.txt') # 使用示例 zip_path = 'example.zip' filter_files(zip_path, filter_txt_files)
在这个示例中,我们定义了一个名为filter_files
的函数,它接受一个ZIP文件路径和一个过滤函数作为参数。过滤函数应该返回一个布尔值,表示是否应该保留给定的文件名。
在示例过滤函数filter_txt_files
中,我们仅提取所有以.txt
结尾的文件。您可以根据需要修改此过滤函数以满足您的需求。
最后,我们调用filter_files
函数并提供ZIP文件路径和过滤函数。这将解压ZIP文件并将过滤后的文件保存到名为filtered_zip.zip
的新ZIP文件中。