Как читать разделы с отступами с помощью python configparser - PullRequest
1 голос
/ 10 июля 2020

Я пытаюсь прочитать следующий файл конфигурации с помощью python configparser:

# test.conf
[section]
a = 0.3

        [subsection]
        b = 123
# main.py

import configparser
conf = configparser.ConfigParser()
conf.read("./test.conf")
a = conf['section']['a']
print(a)

Вывод:

0.3

[subsection]
b = 123

Если я убираю отступы, a читается правильно .

Как я могу правильно прочитать файл конфигурации с отступами с помощью python configparser?

Согласно документам, он должен работать: https://docs.python.org/3.8/library/configparser.html#supported -ini-file-structure

Я использую python 3.7.6

Ответы [ 2 ]

1 голос
/ 24 июля 2020

после появления ошибки в python трекере ошибок, я нашел способ читать разделы с отступом. Добавьте в свой код empty_lines_in_values ​​= False.

Ссылка на систему отслеживания ошибок https://bugs.python.org/issue41379

import configparser
conf = configparser.ConfigParser(empty_lines_in_values=False)
conf.read("./test.conf")
a = conf['section']['a']
print(a)

Вывод:

hello
0 голосов
/ 10 июля 2020

Configparser поддерживает только один раздел и никаких подразделов, если вы хотите, вы можете использовать config obj, http://www.voidspace.org.uk/python/configobj.html

проверьте здесь, это может вам помочь python 3 создайте подраздел для configparser

pip install configobj

, и вы должны использовать двойные квадратные скобки для [[подраздел]], как это, в модуле configobj

...