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

Python遍历文件获大小遇[WinError 3]报错,求解决方案

解决方案
  • 使用os.path.join()规范路径拼接
    手动用+ "/" +拼接路径在Windows系统下容易出错:Windows默认路径分隔符是\,且dirpath本身可能已包含结尾分隔符,直接拼接会导致路径格式混乱。os.path.join()会自动适配系统对应的路径分隔符,彻底避免这类问题。

  • 添加异常捕获机制
    即使路径正确,也可能遇到文件被占用、权限不足或遍历过程中文件被删除的情况。捕获异常能让程序继续执行,同时记录问题文件方便后续排查。

修改后的完整代码:

import os

rootdir = "Z:"

files = []
sizes = []
for dirpath, dirnames, filenames in os.walk(rootdir):
    for f in filenames:
        file_path = os.path.join(dirpath, f)
        try:
            file_size = os.path.getsize(file_path)
            sizes.append(file_size)
            files.append(file_path)
        except FileNotFoundError as e:
            print(f"跳过无法访问的文件: {file_path} | 错误信息: {e}")
        except PermissionError as e:
            print(f"无权限访问文件: {file_path} | 错误信息: {e}")
  • 排查特殊文件名
    重命名文件后可正常访问,说明原文件名可能包含特殊字符(如空格、Unicode字符、Windows保留字符)。os.path.join()能更好地处理这类文件名的编码与路径拼接,避免手动拼接时的格式问题。

  • 可选:提前验证文件存在性
    若需要更严谨的检查,可在获取大小前先确认文件是有效文件(应对遍历过程中文件被删除的极端情况):

if os.path.isfile(file_path):
    # 执行获取大小操作

内容的提问来源于stack exchange,提问作者user026

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:15:00