使用Python运行文件夹内所有exe文件并计算访问拒绝占比求助
问题根因
你当前脚本运行到无权限文件时直接崩溃的核心原因是异常捕获类型不匹配:你代码里仅捕获了ImportError类型的异常,但无访问权限时触发的是PermissionError,异常未被捕获就会直接终止程序运行。
修复后完整代码
import glob, os, time # 配置参数 target_dir = r"C:\Users\VM\Desktop" os.chdir(target_dir) # 统计计数器初始化 total_files = 0 denied_count = 0 for file in glob.glob("*.exe"): total_files += 1 try: os.startfile(file) time.sleep(1) print('Success') except PermissionError: denied_count += 1 print('Access Denied') # 计算权限拒绝占比 if total_files > 0: denied_rate = (denied_count / total_files) * 100 print(f"\n统计结果:总文件数{total_files},权限拒绝数{denied_count},拒绝占比{denied_rate:.2f}%") else: print("\n未找到任何exe文件")
代码修改说明
- 调整异常捕获类型为
PermissionError,匹配无权限访问场景的报错类型,触发异常时自动跳过继续执行后续文件 - 新增两个计数器:
total_files统计遍历到的所有exe文件总数,denied_count统计触发权限拒绝的文件数量 - 遍历结束后自动计算权限拒绝文件的占比,百分比保留2位小数输出
- 保留了原有运行后等待1秒、运行成功打印的逻辑
内容的提问来源于stack exchange,提问作者tlr
相关产品推荐
相关产品推荐

