Python中的Configparser不会返回具有相同名称的所有部分

时间:2016-11-19 10:11:03

标签: python configparser

我的ini文件:

[1]

[4]

[5]

[6]

[9]

[1]

[1]

我的python脚本

import configparser
config = configparser.ConfigParser()
config.readfp(open('inifile.ini'))
print config.sections()

>>> ['1', '4', '5', '6', '9'] #where are two more '1' ?

如何获得所有实际值?必须使用Configparser。

2 个答案:

答案 0 :(得分:1)

在ConfigParser中,部分是唯一的。它将部分存储在map()中。因此它们应该是独一无二的。

根据ConfigParser document

  

ConfigParser类实现了一种基本配置文件解析器语言,该语言提供的结构类似于Microsoft Windows INI文件中的结构。

根据INI Files wiki

  

在某些实现中,重复的部分只是简单地将它们的属性合并在一起,就像它们连续发生一样。其他人可能会中止,或忽略INI文件的某些方面。

答案 1 :(得分:0)

您的配置文件应使用部分名称和部分值进行定义。 ini文件:

[database]
host = www.examle.com
port = 1234

尝试使用get方法读取值:

import configparser
config = configparser.ConfigParser()
config.readfp(open('inifile.ini'))

host = config.get('database', 'host')
port = config.getint('database', 'port')