Spyder中同目录文件需完整路径才能打开的问题求助
解决Spyder中相对路径读取CSV失败的问题
这种情况我之前排查过好几次,大概率是Spyder的**当前工作目录(Working Directory)**悄悄改变了——哪怕你没手动修改过路径变量,也可能因为操作习惯或者软件默认设置触发这个问题。
第一步:先确认当前工作目录
先在你的代码开头加一行,看看Spyder现在默认的工作路径是哪里:
import os print(os.getcwd())
如果输出的路径和你的脚本、CSV文件所在的目录不一样,那这就是问题根源了。
为什么工作目录会变?
常见的几个原因:
- 你最近打开过其他目录下的Python文件,Spyder默认会自动把工作目录切换到那个文件的路径
- 重启Spyder后,它可能回到了默认的启动目录(比如你的用户主文件夹)
- 不小心修改了单脚本的运行配置,指定了其他工作目录
快速解决办法
1. 临时切换工作目录
- 方法一:在Spyder界面右上角(IPython控制台上方),能看到当前的工作目录,点击旁边的文件夹图标,选择你的脚本和CSV所在的目录即可。
- 方法二:在代码开头添加一行,强制切换到脚本所在目录(推荐,避免每次手动改):
import os # 获取当前脚本所在的目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 切换工作目录 os.chdir(script_dir) # 现在就可以用相对路径读取文件了 df = pd.read_csv("Results_Space_Type_Comparison.csv")
2. 设置永久默认工作目录
如果不想每次都手动调整,可以修改Spyder的全局设置:
- 点击顶部菜单栏的
Tools->Preferences - 在弹出的窗口中选择
Run选项卡 - 找到
Working directory部分,选择The directory of the file being executed - 点击
Apply和OK,以后每次运行脚本,Spyder都会自动切换到脚本所在的目录
3. 检查单脚本的运行配置
如果只有某个脚本出现这个问题,可能是单独设置了运行目录:
- 右键你的脚本文件,选择
Run configuration per file - 在窗口中确认
Working directory是不是设置成了脚本所在的路径,要是不对就改回来
额外排查点
如果上面的方法都没用,再检查下文件名:
- 有没有隐形空格或特殊字符?比如文件名看起来是
Results_Space_Type_Comparison.csv,实际末尾多了空格 - 大小写问题?虽然Windows系统不区分大小写,但如果是在WSL或者其他类Unix环境下运行Spyder,大小写不匹配会报错
内容的提问来源于stack exchange,提问作者Harshil
相关产品推荐
相关产品推荐

