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

Python中使用open函数遇FileNotFoundError:文件存在却无法找到

问题分析:FileNotFoundError但文件实际存在的原因

你的代码:

try:
    with open("main.py") as file:
        print("File Opened")
    age = int(input("Enter your age- "))
    xfactor = age/10

except (ValueError, ZeroDivisionError):
    print("Invalid Age")

运行时报错:

Traceback (most recent call last):
  File "c:\Users\aksha\Desktop\python\main.py", line 2, in <module>
    with open("main.py") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'main.py'

核心原因

你用相对路径"main.py"打开文件时,Python会在当前工作目录(启动脚本时所在的文件夹)查找文件,而不是脚本本身所在的文件夹。哪怕脚本文件确实存在,但如果运行时的工作目录和脚本所在目录不一致,Python就找不到这个文件。

比如你的脚本存在c:\Users\aksha\Desktop\python\main.py,但你可能是在C:\Users\aksha目录下运行的脚本,或者IDE默认的工作目录不是脚本所在的文件夹,导致路径匹配失败。

解决办法

  • 用绝对路径打开文件:直接写文件的完整路径,注意加r避免转义字符问题:

    with open(r"c:\Users\aksha\Desktop\python\main.py") as file:
    
  • 切换工作目录后运行:在命令行先进入脚本所在文件夹,再执行脚本:

    cd c:\Users\aksha\Desktop\python
    python main.py
    
  • 设置IDE的工作目录:如果用VS Code、PyCharm等工具,把项目工作目录设为脚本所在文件夹。比如VS Code可以在.vscode/settings.json中添加:

    {
        "python.terminal.executeInFileDir": true
    }
    

    这样运行时会自动切换到文件所在目录。

额外建议

你的try-except块没有捕获FileNotFoundError,所以这个错误会直接抛出。可以把这个异常加到捕获列表里,统一处理:

except (ValueError, ZeroDivisionError, FileNotFoundError):
    print("Invalid age or file not found")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:40:38