Корневая область видимости (пути)
Есть вот такая структура проекта:
Каким способом можно указать НЕ абсолютный путь до файла?
Нужно чтобы это работало:
stats_path = 'logs\\stats.txt'
p.s. Нашёл способ перехода по структуре проекта через точки: .\\ / ..\\, но правильный ли это подход?
stats_path = '..\\..\\logs\\stats.txt'
Ответы (1 шт):
Автор решения: Алексей
→ Ссылка
Решение нашёл такое:
from pathlib import Path
def root_path() -> Path:
"""Returns project root folder."""
return Path(__file__).parent.parent.parent # Тут выход в корень проекта
Создал "хелпер" обращаясь к нему, получаю корневой путь.
Как это выглядит на практике:
import os
from utils.misc.root_path import root_path
STATS_PATH = os.path.join(root_path(), 'logs\\stats.txt')
print(STATS_PATH) # D:\Projects\idle bot\logs\stats.txt
Теперь перемещение файлов/компонентов/модулей (и их вызов) всегда правильно определяют путь и не нужно рефакторить их
