將會將返回模塊的名稱。但是,當作爲一個腳本來運行它(也很有幫助)返回在python中,我可以找到正在執行的腳本的文件名,而不是__main__嗎?導入時
__main__
有一個簡單的方法來獲得當前正在運行的腳本模塊的文件名?
將會將返回模塊的名稱。但是,當作爲一個腳本來運行它(也很有幫助)返回在python中,我可以找到正在執行的腳本的文件名,而不是__main__嗎?導入時
__main__
有一個簡單的方法來獲得當前正在運行的腳本模塊的文件名?
我覺得sys.argv[0]
是你最好的選擇 - 它應該從任何模塊,不僅主模塊工作。
請注意,這可能是也可能不是完整路徑,您必須測試"-c"
空字符串,否則使用os.path.abspath
獲取完整路徑。
嘗試__file__
。
要獲得完整的路徑,
import os
print os.path.abspath(__file__)
'__file__'與主腳本的'sys.argv [0]'看起來相同。 – nneonneo
您可以使用__file__
:
__file__是從哪個模塊的加載,如果它是從一個文件中加載的文件的路徑名。
這包含絕對路徑名,因此,爲了獲得腳本文件名使用:
import os
print os.path.basename(__file__)
__file__
作品在任何情況下:該文件是作爲腳本執行,該文件是進口作爲一個模塊。
'打印__file__' –
@AshwiniChaudhary這是當前模塊的文件,而不是當前執行腳本。 – orlp
@AshwiniChaudhary更確切地說,這將使該聲明出現在文件的名稱。這顯然是同樣的事情,如果這是實際的文件中運行腳本作爲,但不一定。 – millimoose