如果您正在從目錄和驅動器運行與腳本存在位置不同的凍結python腳本(使用py2exe凍結),那麼確定路徑的最佳方法是什麼執行腳本?如何獲取正在執行的凍結腳本的路徑
幾個解決方案我已經試過
inspect.getfile(inspect.currentframe())
問題:不返回完整路徑。它只返回腳本名稱。
os.path.abspath(__file__)
問題:不能在Windows
os.path.dirname(sys.argv[0])
問題的工作:返回空字符串。
os.path.abspath(inspect.getsourcefile(way3))
不會,如果驅動器是從PWD不同的工作
os.path.dirname(os.path.realpath(sys.argv[0]))
如果驅動器是從PWD
這裏不同都不行是一個很小的不工作示例
D:\>path
PATH=c:\Python27\;c:\Users\abhibhat\Desktop\ToBeRemoved\spam\dist\;c:\gnuwin32\bin
D:\>cat c:\Users\abhibhat\Desktop\ToBeRemoved\spam\eggs.py
import os, inspect, sys
def way1():
return os.path.dirname(sys.argv[0])
def way2():
return inspect.getfile(inspect.currentframe())
def way3():
return os.path.dirname(os.path.realpath(sys.argv[0]))
def way4():
try:
return os.path.abspath(__file__)
except NameError:
return "Not Found"
def way5():
return os.path.abspath(inspect.getsourcefile(way3))
if __name__ == '__main__':
print "Path to this script is",way1()
print "Path to this script is",way2()
print "Path to this script is",way3()
print "Path to this script is",way4()
print "Path to this script is",way5()
D:\>eggs
Path to this script is
Path to this script is eggs.py
Path to this script is D:\
Path to this script is Not Found
相關問題:如果腳本駐留在
- How to know the path of the running script in Python?
- How do I get the path and name of the file that is currently executing?
- python, path of script [closed]
注意
@ Fenikso的解決方案將工作同樣的車程,那裏正在執行,但是當它是一個不同的驅動器上,它不會工作
是的,這也適用於py2exe。 – 2012-04-24 08:50:54
@Fenikso:這很好。在發佈這個問題之前,我已經看到很少提及SO中的同一個問題,但是沒有一個答案本身是不正確的。 – Abhijit 2012-04-24 09:01:15