使用os.listdir读取路径出现WinError 3找不到指定路径怎么解决?
解决方案
你贴出的代码中声明的读取路径为images/train,但报错信息指向的缺失路径为images/testing,首先请先确认你实际执行的代码和贴出的内容是否一致,排查是否有其他代码块修改了路径变量的取值。
后续可按以下步骤逐一排查问题:
- 核对目录结构与工作目录
先在代码开头加入以下代码打印当前工作目录,确认相对路径的参考基准和你预期一致:
确认打印出的工作目录下,确实存在import os print(os.getcwd())images/train层级的文件夹,不存在拼写错误、大小写不匹配的问题(Windows虽然默认路径大小写不敏感,但如果是挂载的其他文件系统可能会触发校验)。 - 使用绝对路径避免相对路径偏差
优先使用绝对路径读取文件,可通过以下写法自动拼接脚本所在目录的路径,避免工作目录变动导致的匹配失败:
也可以直接填写完整绝对路径,Windows下建议用正斜杠import os # 获取当前脚本的绝对目录 script_root = os.path.dirname(os.path.abspath(__file__)) # 拼接得到图片文件夹路径,自动适配系统路径分隔符 img_path = os.path.join(script_root, "images", "train")/作为路径分隔符,避免单个反斜杠的转义问题,示例:img_path = "C:/Users/xxx/Documents/dataset/images/train"。 - 修正无效操作的误区
系统环境变量的作用是让系统快速查找可执行程序,和Python读取本地文件的路径逻辑无关,你之前修改环境变量的操作对解决该问题没有帮助,无需继续尝试。 - 排查其余代码逻辑
如果确认路径拼写无误、目录真实存在还是报错,请全局检索你的所有代码中是否有testing字符串,确认报错是来自你贴出的这段循环代码,还是其他位置的代码逻辑。
内容的提问来源于stack exchange,提问作者Komet
相关产品推荐
相关产品推荐

