首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中获取当前执行文件的路径?

如何在Python中获取当前执行文件的路径?
EN

Stack Overflow用户
提问于 2010-04-14 02:37:46
回答 13查看 153.9K关注 0票数 214

这可能看起来像一个新手问题,但事实并非如此。一些常见的方法并不适用于所有情况:

sys.argv

这意味着使用path = os.path.abspath(os.path.dirname(sys.argv[0])),但如果您从另一个目录中的另一个Python脚本运行,这将不起作用,这在现实生活中可能会发生。

__file__

这意味着使用path = os.path.abspath(os.path.dirname(__file__)),但我发现这不起作用:

  • py2exe没有__file__属性,但在我获取NameError: global name '__file__' is not defined

的地方没有__file__ attribute

  • Mac OS X v10.6 (雪豹),您可以使用execute()__file__运行execute()

答案不完整的相关问题:

我正在寻找一个通用解决方案,一个可以在上述所有用例中工作的解决方案。

更新

以下是一个测试用例的结果:

python a.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

a.py

#! /usr/bin/env python
import os, sys

print "a.py: sys.argv[0]=", sys.argv[0]
print "a.py: __file__=", __file__
print "a.py: os.getcwd()=", os.getcwd()
print

execfile("subdir/b.py")

File子目录/b.py

#! /usr/bin/env python
import os, sys

print "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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2632199

复制
相关文章

相似问题

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