如何在Python中获得当前执行的文件的路径?这似乎是个新手的问题,但事实并非如此。有些常见的方法并非在所有情况下都有效:sys.argv[0]这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0])),但如果您从另一个目录中的另一个Python脚本运行,则此操作不起作用,而且在现实生活中可能会发生这种情况。_文件这意味着使用path = os.path.abspath(os.path.dirname(__file__))但我发现这不管用py2exe没有__file__属性,但是有一个变通当您从空闲的execute()没有__file__属性OSX10.6NameError: global name '__file__' is not defined答案不全的相关问题:Python-查找正在运行的文件路径当前文件的路径取决于我如何执行程序。如何知道Python中正在运行的脚本的路径?将目录更改为Python脚本的目录我在找一个通用解,在上述所有用例中都能工作。更新下面是一个测试案例的结果:pythona.py的输出(在Windows上)a.py: __file__= a.py
a.py: os.getcwd()= C:\zzz
b.py: sys.argv[0]= a.py
b.py: __file__= a.py
b.py: os.getcwd()= C:\zzz阿比#! /usr/bin/env pythonimport os, sysprint "a.py: sys.argv[0]=", sys.argv[0]print "a.py: __file__=", __file__print "a.py: os.getcwd()=",
os.getcwd()printexecfile("subdir/b.py")subdir/b.py#! /usr/bin/env pythonimport os, sysprint "b.py: sys.argv[0]=", sys.argv[0]print "b.py: __file__=", __file__print "b.py: os.getcwd()=",
os.getcwd()print树C:.| a.py
\---subdir
b.py
3 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
inspect
os
from inspect import getsourcefilefrom os.path import abspath
abspath(getsourcefile(lambda:0))
添加回答
举报
0/150
提交
取消