VS Code运行Python时无法打开文件报FileNotFoundError问题咨询
VS Code运行Python时FileNotFoundError报错排查方案
这个报错和conda虚拟环境关联配置无关,核心原因是VS Code运行Python脚本时的当前工作目录,和你存放数据文件、脚本的目录不匹配。Spyder默认会将脚本所在目录设为运行时工作目录,因此相同代码可以正常运行。
按以下步骤排查修复:
- 先定位问题根源
在脚本开头加入以下代码,运行后即可打印出当前Python进程实际的工作目录:
如果打印出的路径不是你存放import os print(os.getcwd())original-file-name.json的文件夹,就会触发找不到文件的报错。 - 通用兼容修复(无需调整VS Code配置)
不要直接写文件名作为相对路径,改为基于脚本自身位置拼接绝对路径,无论工作目录如何设置都能正确定位文件,修改后的测试代码如下:import pandas as pd import os # 获取当前脚本所在文件夹的绝对路径 script_path = os.path.dirname(os.path.abspath(__file__)) # 拼接目标文件的完整路径 json_file = os.path.join(script_path, 'original-file-name.json') csv_output = os.path.join(script_path, 'converted-file.csv') dataframe = pd.read_json(json_file, lines=True) dataframe.to_csv(csv_output, index=False, encoding='utf-8') - 修改VS Code默认配置(一劳永逸适配相对路径写法)
- 按下快捷键
Ctrl+,(Mac系统为Cmd+,)打开设置面板 - 搜索设置项
Python > Terminal: Execute In File Dir,勾选对应选项 - 如果你习惯点击编辑器右上角的运行按钮启动脚本,额外搜索
Python: Run in Terminal选项并开启,重启VS Code后,运行脚本时会自动将工作目录切换为当前脚本所在文件夹,直接写文件名的相对路径写法即可正常生效。
- 按下快捷键
- 易忽略的排查点
- 确认VS Code左侧资源管理器打开的根文件夹,是你存放脚本和数据文件的目标文件夹,不要打开错误的目录层级
- 关闭系统的文件扩展名隐藏功能,确认文件实际后缀和代码中写的一致,避免出现
original-file-name.json.txt这类实际后缀和代码中不匹配的情况
内容的提问来源于stack exchange,提问作者Ruben Esteche
相关产品推荐
相关产品推荐

