我在Python中有一個實用程序模塊,需要知道它正在使用的應用程序的名稱。有效地,這意味着調用啓動應用程序的頂級python腳本的名稱(即__name ==「__ main__」將是真實的)。 __name__給出了當前python文件的名稱,但是如何獲取調用鏈中最頂層的名稱?如何獲取python中最頂層(入口)腳本的名稱?
0
A
回答
4
把我的Google查詢切換到「如何從python中找到進程名稱」與如何查找「頂級腳本名稱」相比,我找到了this overly thorough treatment of the topic。總結如下:
import __main__
import os
appName = os.path.basename(__main__.__file__).strip(".py")
+0
在某些情況下,strip部分不太正確:''pretend_example_silly.py「.strip(」.py「)'給出''retend_example_sill」'。 'os.path.basename(__ main __.__ file __)。split(「。」)[0]'可能是一個更好的啓發式 – FredL 2015-12-01 15:54:40
1
您可以使用inspect
這個模塊。例如:
a.py:
#!/usr/bin/python
import b
b.py:
#!/usr/bin/python
import inspect
print inspect.stack()[-1][1]
運行python b.py
打印b.py
。運行python a.py
打印a.py
。
但是,我想第二個sys.argv[0]
的建議作爲一個更明智和慣用的建議。
相關問題
- 1. 如何獲取窗口名稱? [Python]
- 2. Python獲取焦點入口名稱
- 3. 如何獲取調用python函數的腳本名稱?
- 4. 如何按名稱獲取id頂點?
- 5. 如何在Python中獲取當前活動窗口的名稱?
- 6. 在Powershell中獲取腳本名稱
- 7. 如何使窗口絕對最頂層?
- 8. 如何使Outlook Compose窗口最頂層?
- 9. 如何爲Tk頂層窗口路徑生成唯一名稱?
- 10. 如何在user32.dll中獲取所有入口點的名稱?
- 11. 如何獲取調用bash腳本的別名名稱
- 12. 如何獲取從中調用腳本的頁面名稱
- 13. 如何從Laravel的Facade名稱中獲取底層類名
- 14. 使用Java代碼獲取最頂層程序的實際名稱
- 15. 獲取腳本的調用者名稱
- 16. 獲取父shell腳本的名稱
- 17. C#最頂層窗口
- 18. 在最頂層窗口
- 19. 如何在php腳本中獲取表單名稱?
- 20. 如何在PhantomJS中獲取當前腳本名稱?
- 21. 獲取最頂層的父目錄在Python
- 22. 如何獲取端口名稱列表?
- 23. 如何獲取傳遞給Python腳本的數據的源名稱?
- 24. 如何獲取正在運行的Perl腳本的名稱
- 25. 如何在python中通過數字獲取頂級protobuf枚舉值的名稱?
- 26. 如何獲取類集羣中「頂級」類的名稱?
- 27. 如何驗證窗口是使用UIAutomation的最頂層窗口?
- 28. 如何獲取shell腳本的所有進程名稱?
- 29. 如何從sitecustomize.py獲取腳本的名稱/文件?
- 30. 如何獲取調用蝙蝠腳本的名稱
'sys.argv [0]'也許? – 2013-05-10 03:26:51