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

为何在Spyder中无法使用__file__变量?

解决Python获取当前文件目录并设置工作目录的问题

为什么__file__会报错?

__file__变量仅在脚本文件(.py)被直接运行或作为模块导入时才会被定义。如果是在Python交互式Shell、Jupyter Notebook这类环境中执行代码,__file__不存在,就会抛出'name '__file__' is not defined'的错误。

脚本文件中的正确实现

如果你的代码是保存在.py文件中运行,用以下代码就能获取文件所在目录并设置为工作目录:

import os

# 获取当前脚本的绝对路径
script_full_path = os.path.abspath(__file__)
# 提取脚本所在的目录
script_dir = os.path.dirname(script_full_path)
# 将工作目录切换到脚本所在目录
os.chdir(script_dir)

兼容交互式环境的方案

如果需要代码在脚本和交互式环境都能运行,可以通过异常处理兼容两种场景:

import os

try:
    # 脚本模式下获取目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
except NameError:
    # 交互式环境下使用当前工作目录(也可手动指定固定路径)
    script_dir = os.getcwd()

os.chdir(script_dir)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:07:10