使用 configparser 添加注释
我可以使用 python 中的 ConfigParser 模块使用 add_section 和 set 方法创建 ini 文件(请参阅 中的示例http://docs.python.org/library/configparser.html)。但我没有看到任何关于添加评论的信息。这可能吗?我知道如何使用 # 和 ;但如何让 ConfigParser 对象为我添加它呢?我在 configparser 的文档中没有看到任何有关此内容的信息。
I can use the ConfigParser module in python to create ini-files using the methods add_section and set (see sample in http://docs.python.org/library/configparser.html). But I don't see anything about adding comments. Is that possible? I know about using # and ; but how to get the ConfigParser object to add that for me? I don't see anything about this in the docs for configparser.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果你想摆脱尾随的
=
,你可以按照atomocopter的建议子类化ConfigParser.ConfigParser
并实现你自己的write
方法来替换原来的:该脚本的输出为:
注意:
;
开头的选项名称,并且值设置为None
,则它将被视为评论。_read
方法来负责解析注释,并且可能添加一个comments
方法来获取每个部分的注释。If you want to get rid of the trailing
=
, you can subclassConfigParser.ConfigParser
as suggested by atomocopter and implement your ownwrite
method to replace the original one:The output of this script is:
Notes:
;
and value is set toNone
, it will be considered a comment._read
method that takes care of parsing comments and maybe add acomments
method to make it possible to get the comments for each section.创建一个子类,或更简单:
产生以下输出:
Make a subclass, or easier:
Produces this output:
为了避免尾随“=”,一旦您将配置实例写入文件
**subprocess.call(['sed','-in',' s/\\(^#.*\\)=/\\n\\1/',filepath])**
filepath 是您使用 ConfigParser 生成的 INI 文件
To avoid the trailing "=" you can use the sed command with subprocess module, once you have written the config instance to a file
**subprocess.call(['sed','-in','s/\\(^#.*\\)=/\\n\\1/',filepath])**
filepath is the INI file you generated using the ConfigParser