Как сохранить строку кавычек с configobj в Python

У меня есть файл конфигурации, и он имеет элемент как:

[time_format]
iso = "ISO (2015-12-31 13:30:55)"

Я читаю файл конфигурации с configobj как:

config = ConfigObj(file_name);
section = config.keys();

После некоторого чтения я пишу конфигурацию без изменения вышеуказанного пункта как:

config.write();

Элемент в файле конфигурации становится:

iso = ISO (2015-12-31 13:30:55)

Цитаты исчезают. Есть ли способ сохранить цитаты?

2 ответа

У меня была похожая проблема, и я "исправил" ее, создав подкласс ConfigObj и переписав методы, которые удаляют и добавляют кавычки -

from configobj import ConfigObj

class MyConfigObj(ConfigObj):

    def __init__(self, *args, **kwargs):
        ConfigObj.__init__(self, *args, **kwargs)

    def _unquote(self, value):
         return value

    def _quote(self, value, multiline=True):
        return value

Затем используйте MyConfigObj вместо ConfigObj, и записи конфигурации с кавычками считываются и записываются без изменений.

Это работает с простыми конфигурационными файлами, которые я использовал, но я представляю более сложные конфигурационные файлы (многострочные записи, записи со списками и т. Д.), Потребуется дальнейшая доработка!

Использование:

iso = '"ISO (2015-12-31 13:30:55)"'

Другие вопросы по тегам