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

VS Code中Python用open()打开文件报FileNotFoundError解决方法

VS Code运行Python报FileNotFoundError排查方案

这个报错的核心原因绝大多数时候不是文件真的不存在,是Python运行时的工作目录和你存放txt文件的目录不匹配:你在代码里写相对路径filename.txt时,Python只会从当前进程的工作目录下查找目标文件,不会默认从py脚本所在的文件夹找,VS Code默认的运行工作目录经常和脚本存放目录不一致,就会触发找不到文件的错误。另外提一句,open()函数默认读取模式就是r,所以f=open("filename.txt")和f=open("filename.txt","r")效果完全一致,和你这次的报错没有关系。

  • 第一步:先定位Python实际查找文件的路径
    在你报错代码的最开头加两行代码运行:
import os
print(os.getcwd())

控制台打印出来的路径,就是Python当前查找filename.txt的实际目录,打开这个文件夹看,里面肯定没有你创建的那个txt文件。

  • 第二步:快速验证问题根因
    把open函数里的文件名换成txt文件的完整绝对路径测试,比如Windows下文件存在D:/python_project/test/filename.txt,注意路径里的反斜杠要么换成正斜杠,要么加r标记做原生字符串转义,比如r"D:\python_project\test\filename.txt",替换后运行代码如果能正常打开文件,就确认是相对路径和工作目录不匹配的问题。
  • 第三步:选一种方案永久解决
    1. 修改VS Code运行配置:打开项目下的.vscode/launch.json文件,添加配置项"cwd": "${fileDirname}",配置后Python运行时的工作目录会自动切换为当前编辑的py脚本所在的文件夹,只要把txt文件和py脚本放在同一个文件夹,写filename.txt的相对路径就能正常读取。
    2. 代码里动态拼接文件绝对路径,不依赖运行时工作目录,兼容性最强,不管在什么环境跑都不会出路径问题:
import os
# 获取当前py脚本自身所在的文件夹绝对路径
script_path = os.path.dirname(os.path.abspath(__file__))
# 拼接txt文件名,得到文件的完整路径
target_file = os.path.join(script_path, "filename.txt")
f = open(target_file, "r")
  • 易踩的细节坑排查
    • 检查Windows是否开启了文件扩展名隐藏:如果开了这个选项,你以为自己创建的是filename.txt,实际很可能存成了filename.txt.txt,可以打开资源管理器的「显示-文件扩展名」开关,确认文件的真实后缀是.txt。
    • 检查文件名拼写:有没有多余空格、全角字符、大小写不匹配的问题,比如实际文件叫file_name.txt你写成了filename.txt,一样会找不到。
    • 检查文件存放层级:如果txt没有和py脚本放在同一级文件夹,比如txt在py脚本的上层目录,相对路径要写成../filename.txt,存放在子文件夹里要写成子文件夹名/filename.txt,路径层级不对也会触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:27:46