我通过从Python 3.5中的列表中连接字符串创建了一个逗号分隔的字符串,并使用它使用configobj将其写入INI文件。以下是Ubuntu 16.04终端中使用的示例Python脚本:
sudo python3 << EOP
from configobj import ConfigObj
config=ConfigObj("myconfig.ini")
config['items']={}
itemlist=('item1','item2')
csvstr=",".join(list)
config['items']['itemlist'] = csvstr
config.write()
EOP
这会将带引号的字符串写为“item1,item2”,如下所示。
[items]
itemlist = "item1,item2"
但是,如果项目与其他字符(如“;”)连接,则会写入不带引号的字符串!如何让它写出逗号分隔的字符串而不加引号?
感谢任何提示或解决方案。
答案 0 :(得分:2)
逗号保留用于字段分隔,因此您不能拥有(除非really want to)带有逗号的不带引号的字符串值。显然你确实想要一个值列表,所以只需将列表作为值传递:
from configobj import ConfigObj
config=ConfigObj("myconfig.ini")
config['items']={}
itemlist=['item1','item2']
config['items']['itemlist'] = itemlist
config.write()
这将导致
[items]
itemlist = item1, item2
答案 1 :(得分:2)
另一种解决方案是使用config = ConfigObj('myconfig.ini', list_values=False)
关键字:
list_values=False
As the documentation says,如果[items]
itemlist = item1,item2
,则在读写时不会引用或不引用单行值。
结果:
null