Python читает конфигурационный файл независимо от разделов

Я нуб в питоне

Проблема: Найти и заменить ключи (строки) в файлах

Для этого я использую Python ConfigParser. Но я хочу прочитать весь файл конфигурации (.ini) в словарь сразу, независимо от разделов.

  1. Является ли это возможным?
  2. Это нормально?

Я не хочу читать ни одного раздела за раз

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)
Другие вопросы по тегам