如何避免从 python 中的列表连接的逗号分隔字符串中引号
How to avoid quotes from a comma separated string joined from a list in python
我通过连接 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"
但是,如果项目与其他字符连接,例如“;”,它写入的字符串不带引号!如何让它写入不带引号的逗号分隔字符串?
感谢任何提示或解决方案。
逗号是为字段分隔而保留的,因此您不能(除非您 )有一个不带引号的字符串值,其中包含逗号。显然你确实想要一个值列表,所以只传递一个列表作为值:
from configobj import ConfigObj
config=ConfigObj("myconfig.ini")
config['items']={}
itemlist=['item1','item2']
config['items']['itemlist'] = itemlist
config.write()
这将导致
[items]
itemlist = item1, item2
另一个解决方案是使用list_values
关键字:
config = ConfigObj('myconfig.ini', list_values=False)
As the documentation says,如果list_values=False
则单行值在读写时不带引号或不带引号。
结果:
[items]
itemlist = item1,item2
我通过连接 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"
但是,如果项目与其他字符连接,例如“;”,它写入的字符串不带引号!如何让它写入不带引号的逗号分隔字符串?
感谢任何提示或解决方案。
逗号是为字段分隔而保留的,因此您不能(除非您
from configobj import ConfigObj
config=ConfigObj("myconfig.ini")
config['items']={}
itemlist=['item1','item2']
config['items']['itemlist'] = itemlist
config.write()
这将导致
[items]
itemlist = item1, item2
另一个解决方案是使用list_values
关键字:
config = ConfigObj('myconfig.ini', list_values=False)
As the documentation says,如果list_values=False
则单行值在读写时不带引号或不带引号。
结果:
[items]
itemlist = item1,item2