Как мне узнать путь к скрипту Python, в котором я работаю?
Дубликат: как
в Python получить путь и имя файла, который выполняется в данный момент?
Как мне узнать путь к скрипту Python, в котором я работаю? Я делал это dirname(sys.argv[0])
, однако на Mac я получаю только имя файла, а не полный путь, как в Windows.
Независимо от того, откуда запущено мое приложение, я хочу открывать файлы, относящиеся к моему файлу (файлам) сценария.
Ответов (5)5
7.2 из Dive Into Python: Finding the Path .
import sys, os
print('sys.argv[0] =', sys.argv[0])
pathname = os.path.dirname(sys.argv[0])
print('path =', pathname)
print('full path =', os.path.abspath(pathname))
Если у вас есть даже относительный путь (в данном случае он кажется ./
), вы можете открывать файлы, относящиеся к вашему файлу (файлам) сценария. Я использую Perl, но может применяться то же общее решение: я разбиваю каталог на массив папок, затем pop
убираю последний элемент (скрипт), затем push
(или для вас append
) на все, что хочу, и затем снова объединяю их вместе , и БАМ! У меня есть рабочий путь, который указывает именно туда, куда я ожидаю, относительный или абсолютный.
Конечно, есть и лучшие решения, как написано. Мне просто нравится моя.
Принятое решение для этого не сработает, если вы планируете компилировать свои скрипты с помощью py2exe. Если вы планируете это сделать, это функциональный эквивалент:
os.path.dirname(sys.argv[0])
Py2exe не предоставляет __file__
переменную. Для справки: http://www.py2exe.org/index.cgi/Py2exeEnvironment