2

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

[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)

引号消失。有没有办法保留引号?

4

2 回答 2

1

我有一个类似的问题,并通过子类化 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 并读入并写回带引号的配置条目而不进行更改。

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

于 2018-10-24T01:37:39.967 回答
0

利用:

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

于 2015-10-22T12:02:42.100 回答