繁体   English   中英

未使用RawConfigParser写入空字符串

[英]Empty string not getting written with RawConfigParser

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

在一个源.ini我有此文件,希望将其复制:

[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,'""')有效,但这是一个错误吗? 还是我做错了什么? 有没有非骇客的方式来做到这一点?

编辑 :我正在使用Python 2.7

通过查看ConfigParser源代码 ,似乎有一种特殊情况,其中read()函数会将两个双引号作为值转换为空字符串。

不确定为什么要做出此决定,但绝对是故意的行为,我认为if value == "": iniwriter.set(section_name,name,'""')可以解决,您将需要if value == "": iniwriter.set(section_name,name,'""') 。这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM