У меня есть служебный модуль в Python, который должен знать имя приложения, в котором он используется. Эффективно это означает имя сценария питона верхнего уровня, который был вызван для запуска приложения (то есть тот, где __name == "__ main__" будет правдой). __name__ дает мне имя текущего файла python, но как мне получить имя самого верхнего в цепочке вызовов?Как получить имя самого большого (входного) скрипта в python?
ответ
Имея переключить запрос в Google, чтобы «как найти процесса имя из питона» против как найти «имя сценария верхнего уровня», я нашел this overly thorough treatment of the topic. Сводная информация о том, что:
import __main__
import os
appName = os.path.basename(__main__.__file__).strip(".py")
В некоторых случаях полоса не совсем правильная: '' pretend_example_silly.py ".strip (". Py ")' дает '" retend_example_sill "'. 'os.path.basename (__ main __.__ file __). split (". ") [0]' может быть лучше эвристическим – FredL
Для этого вы можете использовать модуль 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. Попытка получить имя файла самого большого файла
- 2. Как получить имя самого файла
- 3. Как получить имя запущенного скрипта Python?
- 4. Размер самого большого подъязыка в python
- 5. Python: получить позицию самого большого элемента в массиве numpy
- 6. Поиск самого большого и самого маленького в Python 2.7
- 7. Получение pid скрипта shell/python внутри самого скрипта
- 8. Получить имя текущего скрипта с Python
- 9. Как получить имя родительского скрипта?
- 10. Как получить имя самого «корневого» ключа?
- 11. Указатель n-го самого большого элемента в списке Python
- 12. Как получить имя Jenkins Build Flow Groovy из самого себя?
- 13. Как получить размер самого большого связанного компонента графика в Spark?
- 14. Получить компонент для скрипта или экземпляр самого скрипта
- 15. Получить runpath скрипта-скрипта python
- 16. извлечение самого большого подключенного компонента
- 17. Как получить имя скрипта в bash?
- 18. Как получить имя скрипта в Groovy
- 19. Как я могу подавить вывод скрипта bash из самого скрипта?
- 20. Пакетный скрипт для сортировки самого большого файла
- 21. Как извлечь имена файлов, прочитанные и написанные скриптом python без выполнения самого скрипта?
- 22. Аудит большого скрипта PHP?
- 23. Индекс самого большого поплавка в массиве
- 24. Выбор самого большого ZIP-кода в столбце
- 25. Как я могу получить размер самого большого файла без открытия?
- 26. Поиск самого большого числа во вложенном списке в Python
- 27. возвращения индекса самого большого значения
- 28. piping имя скрипта python для python
- 29. Поиск самого большого/самого маленького объекта в генераторе питона/список
- 30. Измерение размеров самого большого символа в CGFont
'sys.argv [0]' может быть? –