2013-09-01 17 views
0

將會將返回模塊的名稱。但是,當作爲一個腳本來運行它(也很有幫助)返回在python中,我可以找到正在執行的腳本的文件名,而不是__main__嗎?導入時

__main__ 

有一個簡單的方法來獲得當前正在運行的腳本模塊的文件名?

+3

'打印__file__' –

+0

@AshwiniChaudhary這是當前模塊的文件,而不是當前執行腳本。 – orlp

+0

@AshwiniChaudhary更確切地說,這將使該聲明出​​現在文件的名稱。這顯然是同樣的事情,如果這是實際的文件中運行腳本作爲,但不一定。 – millimoose

回答

2

我覺得sys.argv[0]是你最好的選擇 - 它應該從任何模塊,不僅主模塊工作。

請注意,這可能是也可能不是完整路徑,您必須測試"-c"空字符串,否則使用os.path.abspath獲取完整路徑。

0

嘗試__file__

要獲得完整的路徑,

import os 
print os.path.abspath(__file__) 
+0

'__file__'與主腳本的'sys.argv [0]'看起來相同。 – nneonneo

0

您可以使用__file__

__file__是從哪個模塊的加載,如果它是從一個文件中加載的文件的路徑名。

這包含絕對路徑名,因此,爲了獲得腳本文件名使用:

import os 
print os.path.basename(__file__) 

__file__作品在任何情況下:該文件是作爲腳本執行,該文件是進口作爲一個模塊。

相關問題