gpt4 book ai didi

python - 查找当前运行文件的路径

转载 作者:IT老高 更新时间:2023-10-28 21:34:06 26 4
gpt4 key购买 nike

如何找到当前运行的 Python 脚本的完整路径?也就是说,我要怎么做才能做到这一点:

$ pwd
/tmp
$ python baz.py
running from /tmp
file is baz.py

最佳答案

__file__ 不是您想要的。不要使用意外的副作用

sys.argv[0]总是脚本的路径(如果实际上已经调用了一个脚本)——参见 http://docs.python.org/library/sys.html#sys.argv

__file__当前正在执行的 文件(脚本或模块)的路径。如果从脚本访问,这意外与脚本相同!如果您想将有用的东西(例如相对于脚本位置定位资源文件)放入库中,则必须使用 sys.argv[0]

例子:

C:\junk\so>type \junk\so\scriptpath\script1.py
import sys, os
print "script: sys.argv[0] is", repr(sys.argv[0])
print "script: __file__ is", repr(__file__)
print "script: cwd is", repr(os.getcwd())
import whereutils
whereutils.show_where()

C:\junk\so>type \python26\lib\site-packages\whereutils.py
import sys, os
def show_where():
print "show_where: sys.argv[0] is", repr(sys.argv[0])
print "show_where: __file__ is", repr(__file__)
print "show_where: cwd is", repr(os.getcwd())

C:\junk\so>\python26\python scriptpath\script1.py
script: sys.argv[0] is 'scriptpath\\script1.py'
script: __file__ is 'scriptpath\\script1.py'
script: cwd is 'C:\\junk\\so'
show_where: sys.argv[0] is 'scriptpath\\script1.py'
show_where: __file__ is 'C:\\python26\\lib\\site-packages\\whereutils.pyc'
show_where: cwd is 'C:\\junk\\so'

关于python - 查找当前运行文件的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1296501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com