Написание комментариев к файлам с помощью ConfigParser
Как писать комментарии к заданному файлу внутри разделов?
Если у меня есть:
import ConfigParser
with open('./config.ini', 'w') as f:
conf = ConfigParser.ConfigParser()
conf.set('DEFAULT', 'test', 1)
conf.write(f)
Я получу файл:
[DEFAULT]
test = 1
Но как я могу получить файл с комментариями внутри раздела [DEFAULT]
, например:
[DEFAULT]
; test comment
test = 1
Я знаю, что могу писать коды в файлы, делая:
import ConfigParser
with open('./config.ini', 'w') as f:
conf = ConfigParser.ConfigParser()
conf.set('DEFAULT', 'test', 1)
conf.write(f)
f.write('; test comment') # but this gets printed after the section key-value pairs
Возможно ли это с помощью ConfigParser? И я не хочу попробовать другой модуль, потому что мне нужно сохранить мою программу как "запас", насколько это возможно.
Ответы
Ответ 1
Вы можете использовать параметр allow_no_value, если у вас есть версия >= 2.7
Этот фрагмент:
import ConfigParser
config = ConfigParser.ConfigParser(allow_no_value=True)
config.add_section('default_settings')
config.set('default_settings', '; comment here')
config.set('default_settings', 'test', 1)
with open('config.ini', 'w') as fp:
config.write(fp)
config = ConfigParser.ConfigParser(allow_no_value=True)
config.read('config.ini')
print config.items('default_settings')
создаст файл ini следующим образом:
[default_settings]
; comment here
test = 1
Ответ 2
Вы можете создать переменную, начинающуюся С# или; характер:
conf.set('default_settings', '; comment here', '')
conf.set('default_settings', 'test', 1)
созданный файл conf
[default_settings]
; comment here =
test = 1
Функция ConfigParser.read не будет анализировать первое значение
config = ConfigParser.ConfigParser()
config.read('config.ini')
print config.items('default_settings')
дает
[('test','1')]