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

标签 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)

引号消失。有什么办法可以保留引号吗?

最佳答案

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

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

关于python - 如何在Python中使用configobj保留引号字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33280545/

相关文章:

Python初学者: Setting a variable in a subclass

python - 如何使用 ConfigObj 附加到现有配置文件?

python - 使python configobj不在 '='前后放置空格

python - Python 中的 Xpath 生成器

python - Anaconda:Python 是 64 位,numpy 32 位 -> 冲突。如何获得 numpy 64 位

Python 3.3安装 "configobj"

python - 使用python的带有字典的配置文件

python - 获取 ConfigObj 以引用字符串

python - 将指定文本从索引替换为数组python中的另一个索引

python - 在 Python 3 的 map 中调用 none