批量解压文件夹中Zip文件遇PermissionError问题求助
批量解压文件夹内Zip文件的解决方案
错误原因分析
- 你传入
zipfile.ZipFile()的是文件夹路径(C:/Data/zipper/),而该方法需要接收具体的Zip文件路径,这是核心问题 - 权限错误大概率是目标文件夹
C:/Data/unzipped不存在,或者当前程序没有写入该目录的权限
批量解压的正确代码
以下代码会遍历指定文件夹内所有.zip格式的文件,并逐个解压到目标目录:
import zipfile import os # 存放Zip文件的源文件夹 source_dir = 'C:/Data/zipper' # 解压后的目标文件夹 target_dir = 'C:/Data/unzipped' # 确保目标文件夹存在,不存在则创建 os.makedirs(target_dir, exist_ok=True) # 遍历源文件夹内的所有文件 for filename in os.listdir(source_dir): # 只处理.zip后缀的文件 if filename.endswith('.zip'): zip_path = os.path.join(source_dir, filename) try: with zipfile.ZipFile(zip_path, 'r') as zip_ref: # 解压到目标文件夹 zip_ref.extractall(target_dir) print(f"已成功解压: {filename}") except zipfile.BadZipFile: print(f"跳过损坏的Zip文件: {filename}") except PermissionError: print(f"无权限解压文件: {filename}")
代码说明
os.makedirs(target_dir, exist_ok=True):自动创建目标文件夹,避免因文件夹不存在导致的权限/路径错误- 遍历源文件夹时通过
.endswith('.zip')筛选出Zip文件,避免处理非压缩文件 - 增加异常捕获,处理损坏的Zip文件或权限问题,避免程序中途崩溃
内容的提问来源于stack exchange,提问作者INegativeI
相关产品推荐
相关产品推荐

