首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spyder (Anaconda)中找到当前.py文件的路径?

如何在Spyder (Anaconda)中找到当前.py文件的路径?
EN

Stack Overflow用户
提问于 2018-05-07 14:22:40
回答 4查看 9.9K关注 0票数 5

设置

我在我的计算机上运行一个脚本,位于Users/path/to/my/script.py目录中。

在脚本中,我使用脚本的路径,例如,

代码语言:javascript
运行
复制
sub_path = 'Users/path/to/my/'
os.chdir(sub_path + 'other_script/') 

如您所见,我在代码“手动”中定义了sub_path

问题

我不想手动定义sub_path,我宁愿让Python来帮我。

我正在寻找类似于我用于获取当前工作目录的代码:os.getcwd(),但接下来是获取当前文件目录的代码。

我主要发现的答案类似于这一个,它说,

os.path.abspath(os.path.dirname(__file__))

但是在Spyder & Anaconda设置中,这会生成一个NameError: name '__file__' is not defined

我能做什么?

EN

回答 4

Stack Overflow用户

发布于 2018-05-07 15:20:57

如果要移回一个文件夹/目录,请在文件路径中使用..

os.chdir('../other_scripts/')

会起作用的。查看维基可能会有帮助。如果要从当前位置移动,可以使用'./new_dir/'。如果您想要自动查找其他文件,您可能想要阅读这里,它说要使用os.walk可能是同一个问题。

票数 1
EN

Stack Overflow用户

发布于 2021-04-17 15:07:39

Mark8888 指出来运行整个脚本(运行文件(F5)),而不是只运行脚本的一部分

通过这种方式,多种方法应该可以获得脚本文件的位置并更改当前的工作目录。

代码语言:javascript
运行
复制
import os
# directory of script file
print(os.path.abspath(os.path.dirname(__file__)))
# change current working directory
os.chdir(os.path.abspath(os.path.dirname(__file__)))
# current working directory
print(os.getcwd())

也是

代码语言:javascript
运行
复制
import os
import sys
# directory of script file
print(os.path.abspath(os.path.dirname(sys.argv[0])))
# change current working directory
os.chdir(os.path.abspath(os.path.dirname(sys.argv[0])))
# current working directory
print(os.getcwd())
票数 1
EN

Stack Overflow用户

发布于 2018-05-07 17:27:27

我在运行的任何脚本中添加以下行,以防需要访问相对于脚本位置的数据

代码语言:javascript
运行
复制
import sys
script = sys.argv[0]
print(script)
'C:/SomeFolder/A_Subfolder/CurrentlyRunningScript.py'  # changed obviously
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50216508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档