You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用argparse传入文件夹路径报PermissionError如何获取目录下zip文件列表

报错根因
  • open() 方法仅支持打开单个普通文件,传入文件夹路径时操作系统会拒绝直接将目录作为文件读取,直接触发PermissionError: [Errno 13]错误。
  • 代码中引用了未定义的args.filename属性,argparse配置中仅注册了foldername参数,即便解决权限问题也会触发属性不存在的报错。
  • 现有代码未实现目录遍历、zip格式文件筛选的逻辑,无法输出目标zip文件列表。
修复实现

使用Python自带的pathlib模块完成目录校验、文件遍历和后缀筛选即可,无需安装第三方依赖,可直接运行的代码如下:

import argparse
from pathlib import Path

parser = argparse.ArgumentParser(description='Test')
parser.add_argument("foldername", help="Foldername of log files archive to parse")
args = parser.parse_args()

# 校验传入路径是否为有效目录
target_path = Path(args.foldername)
if not target_path.is_dir():
    raise ValueError(f"路径 {args.foldername} 不是有效文件夹")

# 获取当前文件夹下所有.zip格式文件,生成路径列表
zip_file_list = [str(file) for file in target_path.glob("*.zip")]

# 如果需要递归扫描文件夹下所有子目录内的zip文件,替换为下面这行代码即可
# zip_file_list = [str(file) for file in target_path.rglob("*.zip")]

print(zip_file_list)

运行时传入目标文件夹路径即可,示例命令:python 你的脚本文件名.py ./Test,执行后会直接输出该文件夹下所有zip文件的路径数组。

内容的提问来源于stack exchange,提问作者Olovia.solfjell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 13:09:11