Получение каталогов в python
Получение домашнего каталога
def my_homedir(): home_env = os.getenv('HOME') if home_env is None: home_env = os.path.expanduser('~') homedir = home_env if homedir[-1:] == '/' or homedir[-1:] == "\\": homedir = homedir[0:-1] return homedir
Получение каталога, где расположен сам скрипт
mydir = os.path.dirname(os.path.realpath(__file__))
Получение каталога c ресурсами
Учитывает как простой запуск, так и запуск exe, созданного при
помощи pyinstaller. Аргументом можно дать имя подкаталога внутри
каталога с ресурсами.
При обычном запуске возвращает каталог, где расположен сам скрипт.
def resource_path(relative_path = None): try: base_path = sys._MEIPASS except Exception: base_path = os.path.abspath(os.path.dirname(__file__)) if relative_path is None: return base_path else: return os.path.join(base_path, relative_path)
Получение каталога c настройками
Учитывает переменную окружения XDG_CONFIG_HOME.
def system_config_dir(): p = os.getenv('XDG_CONFIG_HOME', my_homedir() + '/.config') return p