Configobj-python 和列表项问题
Issue with Configobj-python and list items
我正在尝试读取 .ini
文件,其中的关键字包含单个项目或列表项目。当我尝试打印单个项目字符串和浮点值时,它分别打印为 h,e,l,l,o
和 2, ., 1
,而它应该只是 hello
和 2.1
。另外,当我尝试写新的单项string/float/integer时,末尾有,
。我是 python 的新手,正在处理 configobj
。感谢任何帮助,如果之前已经回答了这个问题,请指导我。谢谢!
from configobj import ConfigObj
阅读
config = ConfigObj('para_file.ini')
para = config['Parameters']
print(", ".join(para['name']))
print(", ".join(para['type']))
print(", ".join(para['value']))
写入
new_names = 'hello1'
para['name'] = [x.strip(' ') for x in new_names.split(",")]
new_types = '3.1'
para['type'] = [x.strip(' ') for x in new_types.split(",")]
new_values = '4'
para['value'] = [x.strip(' ') for x in new_values.split(",")]
config.write()
我的para_file.ini
是这样的,
[Parameters]
name = hello1
type = 2.1
value = 2
你的问题分为两部分。
ConfigObj 中的选项可以是字符串,也可以是字符串列表。
[Parameters]
name = hello1 # This will be a string
pets = Fluffy, Spot # This will be a list with 2 items
town = Bismark, ND # This will also be a list of 2 items!!
alt_town = "Bismark, ND" # This will be a string
opt1 = foo, # This will be a list of 1 item (note the trailing comma)
因此,如果您希望某些内容在 ConfigObj 中显示为列表,则必须确保它包含一个逗号。一项的列表必须有尾随逗号。
在Python中,字符串是可迭代的。因此,即使它们不是列表,也可以对其进行迭代。这意味着在
这样的表达式中
print(", ".join(para['name']))
字符串 para['name']
将被迭代,生成列表 ['h', 'e', 'l', 'l', 'o', '1']
,Python 尽职尽责地用空格连接在一起,生成
h e l l o 1
我正在尝试读取 .ini
文件,其中的关键字包含单个项目或列表项目。当我尝试打印单个项目字符串和浮点值时,它分别打印为 h,e,l,l,o
和 2, ., 1
,而它应该只是 hello
和 2.1
。另外,当我尝试写新的单项string/float/integer时,末尾有,
。我是 python 的新手,正在处理 configobj
。感谢任何帮助,如果之前已经回答了这个问题,请指导我。谢谢!
from configobj import ConfigObj
阅读
config = ConfigObj('para_file.ini')
para = config['Parameters']
print(", ".join(para['name']))
print(", ".join(para['type']))
print(", ".join(para['value']))
写入
new_names = 'hello1'
para['name'] = [x.strip(' ') for x in new_names.split(",")]
new_types = '3.1'
para['type'] = [x.strip(' ') for x in new_types.split(",")]
new_values = '4'
para['value'] = [x.strip(' ') for x in new_values.split(",")]
config.write()
我的para_file.ini
是这样的,
[Parameters]
name = hello1
type = 2.1
value = 2
你的问题分为两部分。
ConfigObj 中的选项可以是字符串,也可以是字符串列表。
[Parameters] name = hello1 # This will be a string pets = Fluffy, Spot # This will be a list with 2 items town = Bismark, ND # This will also be a list of 2 items!! alt_town = "Bismark, ND" # This will be a string opt1 = foo, # This will be a list of 1 item (note the trailing comma)
因此,如果您希望某些内容在 ConfigObj 中显示为列表,则必须确保它包含一个逗号。一项的列表必须有尾随逗号。
在Python中,字符串是可迭代的。因此,即使它们不是列表,也可以对其进行迭代。这意味着在
这样的表达式中print(", ".join(para['name']))
字符串
para['name']
将被迭代,生成列表['h', 'e', 'l', 'l', 'o', '1']
,Python 尽职尽责地用空格连接在一起,生成h e l l o 1