См. Ответ выше о бикопе.
Кроме того, индекс пакетов Python на http://pypi.python.org/pypi - отличное место для поиска пакетов Python.
РЕДАКТИРОВАТЬ : приведенное ниже может все же помочь кому-то, пытающемуся разобраться в простом разборе, но bicop, очевидно, является существующим решением.
Если кто-то изменил конфигурацию вручную, и вы не хотите перезаписывать ее, означает ли это, что вы хотите вставить / удалить строки из существующей конфигурации, оставив все комментарии и т. Д. Без изменений? Это предотвращает синтаксический анализ и повторный вывод конфигурации, но это также является положительным моментом - вам не нужно полностью анализировать файл для достижения вашей цели.
Чтобы добавить запись, вы можете попробовать простой подход, такой как
# define zone_you_care_about and line_you_wish_to_insert first, then:
for line in bindfile.read():
out.write(line + '\n')
if ('zone "%s" in' % zone_you_care_about) in line:
out.write(line_you_wish_to_insert)
Аналогичный код работает для удаления строки:
# define zone_you_care_about and relevant_text_to_remove, then:
for line in bindfile.read():
if not relevant_text_to_remove in line:
out.write(line + '\n')
Вы можете зайти так далеко, как вам нужно, с помощью простых фрагментов кода, подобных этому.