Установите библиотеку python для доступа к стандартам freedesktop.org
Чтобы получить каталоги XDG с Python, вам необходимо установить (в зависимости от вашей версии python) один из следующих пакетов:
[d2 ] Для Python 2.x
sudo apt-get install python-xdg
Для Python 3:
sudo apt-get install python3-xdg
Каталоги XDG
$XDG_DATA_HOME определяют базовый каталог, по отношению к которому пользователь файлы данных должны храниться. Если $XDG_DATA_HOME либо не задан, либо пуст, следует использовать значение по умолчанию, равное $HOME/.local/share. $XDG_CONFIG_HOME определяет базовый каталог, по которому должны храниться файлы конфигурации конкретного пользователя. Если $XDG_CONFIG_HOME либо не задан, либо пуст, следует использовать значение по умолчанию, равное $HOME/.config. $XDG_DATA_DIRS определяет упорядоченный по предпочтению набор базовых каталогов для поиска файлов данных в дополнение к базовому каталогу $XDG_DATA_HOME. Каталоги в $XDG_DATA_DIRS должны быть разделены двоеточием::. Если $XDG_DATA_DIRS не задано или пусто, должно использоваться значение, равное /usr/local/share/:/usr/share/. $XDG_CONFIG_DIRS определяет упорядоченный по предпочтению набор базовых каталогов для поиска файлов конфигурации в дополнение к базовому каталогу $XDG_CONFIG_HOME. Каталоги в $XDG_CONFIG_DIRS должны быть разделены двоеточием::. Если $XDG_CONFIG_DIRS не задано или пусто, должно использоваться значение, равное /etc/xdg. Источник: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
ОБНОВЛЕНИЕ: Как получить доступ к пользовательским каталогам XDG Ubuntu:
Файл ~/.config/user-dirs.dirs всегда будет содержать имена локализации, поскольку инструмент http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html управляет этим файлом , см. раздел посвященной справочной страницы:
The XDG user dirs configuration is stored in the user-dirs.dir
file in the location pointed to by the XDG_CONFIG_HOME
environment variable.
Следующий код python позволит вам проанализировать ~/.config/user-dirs.dirs.
#!/usr/bin/env python
import io
import os
import re
import ConfigParser
from xdg.BaseDirectory import xdg_config_home
config = ConfigParser.RawConfigParser(allow_no_value=True)
f = open(os.path.join(xdg_config_home, "user-dirs.dirs"))
user_config = "[XDG_USER_DIR]\n" + f.read()
f.close()
user_config = re.sub('\$HOME', os.path.expanduser("~"), user_config)
user_config = re.sub('"', '', user_config)
config.readfp(io.BytesIO(user_config))
print config.get("XDG_USER_DIR", "XDG_PICTURES_DIR")
задан Avishai Barnoy
14 January 2017 в 23:11
поделиться