Путь к текущему файлу зависит от того, как я выполняю программу

Это моя программа на Python:

#!/usr/bin/env python

import os

BASE_PATH = os.path.dirname(__file__)
print BASE_PATH

Если я запускаю это с помощью python myfile.py он печатает пустую строку. Если я запускаю его с помощью myfile.py, он печатает правильный путь. Почему это? Я использую Windows Vista и Python 2.6.2.

3 ответа

Решение

Это просто безобидная причуда окон; Вы можете компенсировать с помощью os.path.abspath(__file__)см. документы

os.path.normpath(os.path.join(os.getcwd(),os.path.dirname(__file__)))

Во многих случаях лучше использовать:

os.path.dirname(sys.argv[0])
Другие вопросы по тегам