如何用Python批量解压ZIP文件?快速解决方案
文章目录
- **如何用Python批量解压ZIP文件?快速解决方案**
- 代码
- 结果
- 详细解释
话不多说,先上干货!!!
代码
import os
import zipfiledef unzip_file(dir_path: str, zip_name: str, extract_dir: str, password: str = None):"""解压指定的 ZIP 文件到目标目录。@param dir_path: 包含 ZIP 文件的源目录路径@param zip_name: ZIP 文件的名称(不带 .zip 扩展名)@param extract_dir: 解压后的文件存放目录@param password: ZIP 文件的密码(可选)@return: 无返回值"""# 构造完整的 ZIP 文件路径zip_filepath = os.path.join(dir_path, zip_name + '.zip')# 构造解压目标路径extract_path = os.path.join(extract_dir, zip_name)# 创建解压目标目录,如果不存在if not os.path.exists(extract_path):os.makedirs(extract_path)try:# 打开 ZIP 文件with zipfile.ZipFile(zip_filepath, 'r') as extracting:# 如果设置了密码,尝试解压if password:extracting.setpassword(password.encode('utf-8'))# 解压所有文件到目标目录extracting.extractall(extract_path)print(f"成功解压:{zip_name}")except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")if __name__ == '__main__':# 设置源目录和目标目录路径dir_path = r'D:\桌面\baby' # 源目录extract_dir = r'D:\桌面\ye' # 目标目录# 获取 ZIP 文件列表for filename in os.listdir(dir_path):# 检查是否是 ZIP 文件if filename.endswith('.zip'):# 提取 ZIP 文件名(不带 .zip)zip_name = filename[:-4]try:# 解压 ZIP 文件,传递密码(如无需密码,可省略或设置为 None)unzip_file(dir_path, zip_name, extract_dir, password=None)except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")print(f"所有 ZIP 文件已解压到:{extract_dir}")
结果
详细解释
-
导入必要的模块
import os import zipfile
- os:用于处理文件路径、目录创建等操作
- zipfile:用于处理zip文件的解压
-
unzip_file函数
def unzip_file(dir_path: str, zip_name: str, extract_dir: str, password: str = None):"""解压指定的 ZIP 文件到目标目录。@param dir_path: 包含 ZIP 文件的源目录路径@param zip_name: ZIP 文件的名称(不带 .zip 扩展名)@param extract_dir: 解压后的文件存放目录@param password: ZIP 文件的密码(可选)@return: 无返回值"""# 构造完整的 ZIP 文件路径zip_filepath = os.path.join(dir_path, zip_name + '.zip')# 构造解压目标路径extract_path = os.path.join(extract_dir, zip_name)# 创建解压目标目录,如果不存在if not os.path.exists(extract_path):os.makedirs(extract_path)try:# 打开 ZIP 文件with zipfile.ZipFile(zip_filepath, 'r') as extracting:# 如果设置了密码,尝试解压if password:extracting.setpassword(password.encode('utf-8'))# 解压所有文件到目标目录extracting.extractall(extract_path)print(f"成功解压:{zip_name}")except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")
-
功能:解压指定的ZIP文件到目标目录。
-
步骤:①构造完整的ZIP文件路径和解压目标路径
②创建解压目标目录,如果不存在则创建
③打开ZIP文件,尝试解压到目标目录
④处理异常,输出成功或失败信息
-
-
主程序部分
if __name__ == '__main__':# 设置源目录和目标目录路径dir_path = r'D:\桌面\baby' # 源目录extract_dir = r'D:\桌面\ye' # 目标目录# 获取 ZIP 文件列表for filename in os.listdir(dir_path):# 检查是否是 ZIP 文件if filename.endswith('.zip'):# 提取 ZIP 文件名(不带 .zip)zip_name = filename[:-4]try:# 解压 ZIP 文件,传递密码(如无需密码,可省略或设置为 None)unzip_file(dir_path, zip_name, extract_dir, password=None)except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")print(f"所有 ZIP 文件已解压到:{extract_dir}")
-
功能:遍历源目录,解压所有ZIP文件到目标目录。
-
步骤:①设置源目录
dir_path
和目标目录extract_dir
②遍历源目录中的所有文件,筛选出ZIP文件
③对于每个ZIP文件,调用
unzip_file
函数进行解压 ④处理异常,输出解压结果
-
看到这里就结束了,你学会了吗???