Когда модуль загружается в Python, для __file__
устанавливается его имя. Затем вы можете использовать это с другими функциями, чтобы найти каталог, в котором находится файл.
Принимая ваши примеры по одному:
A = os.path.join(os.path.dirname(__file__), '..')
# A is the parent directory of the directory where program resides.
B = os.path.dirname(os.path.realpath(__file__))
# B is the canonicalised (?) directory where the program resides.
C = os.path.abspath(os.path.dirname(__file__))
# C is the absolute path of the directory where the program resides.
Здесь вы можете увидеть различные значения, возвращаемые здесь:
import os
print __file__
print os.path.join(os.path.dirname(__file__), '..')
print os.path.dirname(os.path.realpath(__file__))
print os.path.abspath(os.path.dirname(__file__))
и убедитесь, что вы запускаете его из разных мест (например, ./text.py
, ~/python/text.py
и т. Д.), Чтобы увидеть, какое это имеет значение.