没有用RawConfigParser写的空字符串

时间:2013-10-31 16:45:50

标签: python merge ini configparser

我正在将部分,选项和值从一个.ini文件复制到另一个.ini文件,以便将多个.ini文件合并为一个RawConfigParser

在一个来源[foo] bar="" 中我有这个并希望将其复制:

[foo]
bar=

然而,我得到的结果是

'""'

这使我的要求失败,因为我测试的封闭外部程序不适用于此ini。

我尝试使用\"\""\"\""'',但没有成功。 (修改:请注意,在输出""中也不会对我有任何好处,需要import ConfigParser inireader = ConfigParser.RawConfigParser() inireader.read('source.ini') iniwriter=ConfigParser.RawConfigParser() for section_name in inireader.sections(): for name, value in inireader.items(section_name): print name,value if not iniwriter.has_section(section_name): iniwriter.add_section(section_name) iniwriter.set(section_name, name, value) with open("output.ini", "wb") as f: iniwriter.write(f)

我的代码是:

if value == "": iniwriter.set(section_name,name,'""')

{{1}}有效,但这是一个错误吗?或者我做错了什么?有一种非黑客的方法吗?

编辑:我正在使用 Python 2.7

1 个答案:

答案 0 :(得分:2)

通过查看ConfigParser source code,看起来有一种特殊情况,read()函数会将两个双引号作为值转换为空字符串。

不完全确定为什么做出这个决定,但这绝对是故意行为,我认为你需要和你的hacky if value == "": iniwriter.set(section_name,name,'""')一起解决这个问题。

相关问题