在ConfigParser Python中使用冒号

时间:2010-10-30 11:06:11

标签: python file configuration

根据文件:

  

配置文件包含   由[section]标题引导的部分   后跟名称:值条目,   具有RFC风格的延续   822(见第3.1.1节,“长标题”   FIELDS”); name = value也被接受。   Python Docs

但是,编写配置文件时始终使用等号(=)。有没有选择使用冒号(?)?

提前致谢。

ħ

1 个答案:

答案 0 :(得分:7)

如果您查看定义RawConfigParser.writeConfigParser.py方法的代码,您会看到等号是硬编码的。因此,要更改行为,您可以继承您希望使用的ConfigParser:

import ConfigParser
class MyConfigParser(ConfigParser.ConfigParser):
    def write(self, fp):
        """Write an .ini-format representation of the configuration state."""
        if self._defaults:
            fp.write("[%s]\n" % DEFAULTSECT)
            for (key, value) in self._defaults.items():
                fp.write("%s : %s\n" % (key, str(value).replace('\n', '\n\t')))
            fp.write("\n")
        for section in self._sections:
            fp.write("[%s]\n" % section)
            for (key, value) in self._sections[section].items():
                if key != "__name__":
                    fp.write("%s : %s\n" %
                             (key, str(value).replace('\n', '\n\t')))
            fp.write("\n")

filename='/tmp/testconfig'    
with open(filename,'w') as f:
    parser=MyConfigParser()
    parser.add_section('test')
    parser.set('test','option','Spam spam spam!')
    parser.set('test','more options',"Really? I can't believe it's not butter!")
    parser.write(f)

的产率:

[test]
more options : Really? I can't believe it's not butter!
option : Spam spam spam!