Как получить имя запущенного скрипта Python?Как получить имя запущенного скрипта Python?
Я пробовал os.__file__
, но возвращает имя файла, в котором находится os
.
Как получить имя запущенного скрипта Python?Как получить имя запущенного скрипта Python?
Я пробовал os.__file__
, но возвращает имя файла, в котором находится os
.
sys.argv[0]
должно указывать имя сценария.
>> import os
>> import sys
>> print sys.argv[0]
или если вы просто хотите сценарий, а не полный путь
>>
>> print os.path.basename(sys.argv[0])
Yup, это работает (= 1). @tehryan, пожалуйста, примите это как ответ, чтобы помочь другим, у кого есть тот же вопрос. – Mawg
Использование
thisFile = __file__
Это волшебство!
Я получаю '' 'NameError: name '__file__' не определен'''. – bos
Какая реализация Python вы используете? CPython или что-то еще? – Chazadanga
Python 2.7.3. Я просто запускал «python», затем «print __file__». – bos
sys.path[0]
возвращает путь к сценарию, запускающему интерпретатор Python.
Если вы прочитаете этот скрипт напрямую, он вернет путь к скрипту. Если скрипт был импортирован из другого скрипта, он вернет путь к этому скрипту.
Я не спускал вниз, а просто тестировал. Это дало мне «K:/code/allRequirementsTests», который является абсолютным путем для скрипта, минус расширение – Mawg
Это зависит от того, что вы подразумеваете под «запущенным скриптом python».
__file__
даст вам имя исполняемого файла. Если это модуль, вы получите, где он был импортирован из, например, blahblah.pyc
sys.argv[0]
даст вам имя исполняемого скрипта, даже если вызывается из модуля, который импортировал этот скрипт.
Пожалуйста, просмотрите ответы на более ранний вопрос по этой теме (см. Комментарий С.Лотта по вашему вопросу).
import __main__
print __main__.__file__
Это напечатает текущее имя файла, который работает
Дубликат: http://stackoverflow.com/questions/50499/in-python-how-do-i-get-the-path-and -name-of-the-file-that-is-executing –
http://stackoverflow.com/q/4152963/2336725 кажется лучшим дубликатом. – Teepeemm