Как мне получить путь к скрипту Python, в котором я работаю?

Duplicate:
В Python, как мне получить путь и имя файла, который в настоящее время выполняется?

Как мне получить путь к Python script, в котором я запущен? Я делал dirname(sys.argv[0]), однако на Mac я получил только имя файла - не полный путь, как в Windows.

Независимо от того, откуда запускается мое приложение, я хочу открыть файлы, относящиеся к моим файлам script.

Ответ 1

os.path.realpath(__file__) предоставит вам путь к текущему файлу, разрешая любые символические ссылки в пути. Это отлично работает на моем mac.

Ответ 2

7.2 погружения в Python: Поиск пути.

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)) 

Ответ 3

import os
print os.path.abspath(__file__)

Ответ 4

Принятое решение для этого не будет работать, если вы планируете скомпилировать свои скрипты с помощью py2exe. Если вы планируете это сделать, это функциональный эквивалент:

os.path.dirname(sys.argv[0])

Py2exe не предоставляет переменную __file__. Для справки: http://www.py2exe.org/index.cgi/Py2exeEnvironment

Ответ 5

Если у вас есть относительный путь (в данном случае он выглядит как ./), вы можете открывать файлы по отношению к вашим файлам script. Я использую Perl, но может применяться одно и то же общее решение: я разделяю каталог на массив папок, затем pop от последнего элемента (script), затем push (или для вас, append) на то, что я хочу, а затем снова объединить их вместе, и БАМ! У меня есть рабочий путь, который указывает точно, где я ожидаю, что он будет указывать, относительный или абсолютный.

Конечно, есть более совершенные решения, как опубликовано. Я просто вроде как.