В соответствии с модулем ConfigParser документация,
Файлы конфигурации могут содержать комментарии с префиксом определенных
символы (# и;). Комментарии могут появляться самостоятельно в противном случае
пустая строка или может быть введена в строки, содержащие значения или раздел
имена. В последнем случае им должен предшествовать пробел
символ должен быть признан в качестве комментария. (Для обратной совместимости,
только ; запускает встроенный комментарий, а # - нет.)
Если вы хотите прочитать «комментарий» со значением, вы можете опустить пробел перед символом ;
или использовать #
. Но в этом случае строки comment1
и comment2
становятся частью значения и больше не считаются комментариями.
Лучшим подходом было бы использовать другое имя свойства, такое как variable1_comment
, или определить другой раздел в конфигурации, предназначенный для комментариев:
[local]
variable1 = value1
[comments]
variable1 = comment1
Первое решение требует, чтобы вы сгенерировали новый ключ, используя другой (то есть вычислите variable1_comment
из variable1
), другое позволяет вам использовать тот же ключ для разных разделов в файле конфигурации.
Начиная с Python 2.7.2, всегда можно прочитать комментарий вдоль строки , если вы используете символ #
. Как говорят в документах, это для обратной совместимости. Следующий код должен работать без сбоев:
config = ConfigParser.ConfigParser()
config.read('config.ini')
assert config.get('local', 'variable1') == 'value1'
assert config.get('local', 'variable2') == 'value2 # comment2'
для следующего config.ini
файла:
[local]
variable1 = value1 ; comment1
variable2 = value2 # comment2
Если вы принимаете это решение, не забудьте вручную проанализировать результат get()
для значений и комментариев.