如何使用ConfigParser处理配置文件中的空值?

2024-04-29 10:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用python configparser模块解析in I文件中没有值的标记?

例如,我有下面的ini,我需要解析rb。在某些ini文件中,rb有整数值,而在某些文件中则完全没有值,如下例所示。如何使用configparser在不获取valueerror的情况下完成此操作?我使用getint函数

[section]
person=name
id=000
rb=

Tags: 模块文件函数namein标记情况section
3条回答

不要使用getint(),而是使用get()将选项作为字符串获取。然后自己转换成int:

rb = parser.get("section", "rb")
if rb:
    rb = int(rb)

可能使用try...except块:

    try:
        value=parser.getint(section,option)
    except ValueError:
        value=parser.get(section,option)

例如:

import ConfigParser

filename='config'
parser=ConfigParser.SafeConfigParser()
parser.read([filename])
print(parser.sections())
# ['section']
for section in parser.sections():
    print(parser.options(section))
    # ['id', 'rb', 'person']
    for option in parser.options(section):
        try:
            value=parser.getint(section,option)
        except ValueError:
            value=parser.get(section,option)
        print(option,value,type(value))
        # ('id', 0, <type 'int'>)
        # ('rb', '', <type 'str'>)
        # ('person', 'name', <type 'str'>) 
print(parser.items('section'))
# [('id', '000'), ('rb', ''), ('person', 'name')]

创建解析器对象时,需要设置allow_no_value=True可选参数。

相关问题 更多 >