Python читает конфигурационный файл независимо от разделов
Я нуб в питоне
Проблема: Найти и заменить ключи (строки) в файлах
Для этого я использую Python ConfigParser. Но я хочу прочитать весь файл конфигурации (.ini) в словарь сразу, независимо от разделов.
- Является ли это возможным?
- Это нормально?
Я не хочу читать ни одного раздела за раз
dict(Config.items('Section'))
Не хочу пересекать разделы
for each_section in conf.sections():
for (each_key, each_val) in conf.items(each_section):
print each_key
print each_val
Какие еще варианты у меня остались?
------- Редактировать 1 -------
config.ini
[Common]
home_dir: /Users
library_dir: /Library
system_dir: /System
macports_dir: /opt/local
[Frameworks]
Python: 3.2
path: ${Common:system_dir}/Library/Frameworks/
[Arthur]
nickname: Two Sheds
last_name: Jackson
my_dir: ${Common:home_dir}/twosheds
my_pictures: ${my_dir}/Pictures
python_dir: ${Frameworks:path}/Python/Versions/${Frameworks:Python}
Ниже приведен файл, который содержит ключи, которые должны быть восстановлены
my dir is home_dir
my lib dir is library_dir
python path is path
My pictures are placed at my_pictures
1 ответ
Если вы ищете словарь, в котором все значения в файле конфигурации будут представлены в виде пары "ключ-значение" независимо от его раздела, я думаю, вы идете правильным образом.
dict={}
for sec in config.sections():
for item in config.items(sec):
dict[item[0]]=item[1]
Я думаю, что вы ограничены чтением различных разделов, чтобы получить разные значения для каждого параметра в разделе.
dict_sectionValues = {}
for section in Config.sections():
for option in Config.options(section):
value = Config.get(section, option)
dict_sectionValues[option] = value
Я думаю, что это немного менее читабельно, но вы можете уменьшить до:
dict_sectionValues = {}
for section in Config.sections():
for option in Config.options(section):
dict_sectionValues[option] = Config.get(section, option)