如何在Python中使用configobj保留引号字符串

时间:2015-10-22 12:01:18

标签: python configobj

我有一个配置文件,它有一个项目:

[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 个答案:

答案 0 :(得分:0)

使用:

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

答案 1 :(得分:0)

我遇到了类似的问题,并通过子类化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,并读入并写回带有引号的配置条目,而无需更改。

这对我使用过的简单配置文件有效,但我想在更复杂的配置文件(多行条目,带有列表的条目等)上,还需要进一步完善!