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

Windows环境下反复出现FileNotFoundError [Errno 2]问题求助

问题原因与解决方法

核心原因分析

1. VS Code 当前工作目录与代码文件目录不一致

Python 执行时默认从当前工作目录查找文件,而非代码文件所在的目录。如果在VS Code中仅单独打开pyWork里的某个.py文件,而非直接打开整个pyWork文件夹作为工作区,那么VS Code的默认工作目录可能是用户根目录(C:\Users\xxxx)或桌面,而非C:\Users\xxxx\Desktop\pyWork。这种情况下,代码里的相对路径会指向错误目录,自然找不到目标文件。

2. Windows 文件扩展名隐藏导致文件名匹配错误

旧Windows系统默认隐藏已知文件类型的扩展名,比如你的Excel文件实际名称可能是Data_File_2.xlsx.xlsx(拷贝时重复添加了扩展名),但资源管理器仅显示Data_File_2.xlsx,代码中写的文件名与实际文件不匹配,就会触发找不到文件的异常。txt文件也可能存在同样问题。

3. U盘拷贝文件的权限/锁定问题

从U盘拷贝到Windows的文件,可能被系统标记为“来自外部设备的文件”,旧Windows会对这类文件做安全限制,导致Python进程没有读取权限——这种权限问题有时会伪装成FileNotFoundError报错。

解决步骤

1. 修正VS Code工作目录

  • 关闭当前VS Code窗口,右键点击pyWork文件夹,选择“通过Code打开”,此时VS Code的工作目录就是pyWork,运行代码时相对路径能正确定位文件。
  • 或者在VS Code终端手动切换目录:
    cd C:\Users\xxxx\Desktop\pyWork
    
    再运行Python脚本。
  • 最稳妥的方式是在代码中动态拼接文件路径,避免依赖工作目录:
    import os
    import openpyxl
    
    # 获取当前脚本所在目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接目标文件路径
    file_path = os.path.join(script_dir, "Data_File_2.xlsx")
    fw = openpyxl.load_workbook(file_path)
    

2. 显示文件扩展名并核对文件名

  • 打开Windows资源管理器,点击顶部“查看”选项卡,勾选“文件扩展名”。
  • 仔细核对pyWork目录下的文件名与代码中写的完全一致(Windows文件名不区分大小写,但保持一致可避免不必要的问题)。

3. 解除文件锁定与检查权限

  • 右键点击出问题的文件,选择“属性”,若“常规”选项卡中有“解除锁定”按钮,点击解除。
  • 切换到“安全”选项卡,确认当前登录用户拥有“读取”权限,若没有则点击“编辑”添加读取权限。

为什么异常会持续触发?

并非首次异常导致后续报错,而是根源问题始终未解决——不管是工作目录错误、文件名不匹配还是权限限制,只要这些问题存在,任何用相对路径读取同目录文件的代码都会找不到目标文件,自然每次运行都会触发FileNotFoundError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 15:06:45