Mac系统VS Code中Python与Excel同文件夹仍报FileNotFoundError如何解决?
问题产生原因
- 最核心的诱因是VS Code默认运行Python脚本时的工作目录≠脚本实际存储目录:你打开上级文件夹作为VS Code工作区时,运行脚本的默认工作目录是工作区根目录,不会自动切换到脚本所在的
/Users/User/M/M1/DS project路径,相对路径'Test.xlsx'会从工作区根目录查找文件,自然找不到。 - 次要排查点:
- Mac访达默认隐藏已知文件类型后缀,你看到的
Test.xlsx可能实际文件名为Test.xlsx.xlsx - 文件名大小写不匹配:如果你的磁盘分区开启了大小写敏感规则,
test.xlsx和Test.xlsx会被识别为两个不同文件 - 路径空格识别问题:你的存储路径包含空格
DS project,手动写路径时如果没有正确转义也会触发报错
- Mac访达默认隐藏已知文件类型后缀,你看到的
修复方案
步骤1:先确认工作目录是否匹配
在你的现有代码最开头添加两行代码,运行后查看输出的路径是否为/Users/User/M/M1/DS project:
import os print("当前工作目录:", os.getcwd())
如果输出路径不匹配,按以下方案修复即可。
方案1:配置VS Code默认使用脚本所在目录作为工作目录
- 打开VS Code运行和调试面板,点击「创建launch.json文件」,选择Python环境
- 在配置项中添加
"cwd": "${fileDirname}",示例配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "cwd": "${fileDirname}", "console": "integratedTerminal" } ] }
保存后再运行脚本,相对路径就会从脚本所在目录开始查找。
方案2:使用动态绝对路径(无需修改VS Code配置,兼容性更强)
直接修改你的代码,通过__file__变量获取当前脚本的真实路径,拼接Excel文件路径,完全不受工作目录影响:
import pandas as pd import os # 动态拼接同目录下的Test.xlsx路径 current_script_dir = os.path.dirname(os.path.abspath(__file__)) excel_file_path = os.path.join(current_script_dir, 'Test.xlsx') df = pd.read_excel(excel_file_path) print(df.head(2))
方案3:排查文件名真实后缀
打开终端,执行以下命令进入存储目录,查看真实文件名:
cd /Users/User/M/M1/DS project ls
根据输出的真实文件名调整代码里的文件名即可,避免被访达的隐藏后缀误导。
内容的提问来源于stack exchange,提问作者Catalyst
相关产品推荐
相关产品推荐

