如何自动解析python中布尔格式的conf文件中的配置选项?

时间:2015-02-13 10:42:27

标签: python python-2.7 parsing python-3.x configuration-files

假设我在 [Bulutkare] 部分下有这样的配置选项:

[Bulutkare]
title = www.bulutkare.com
subtitle = www.bulutkare.com
id = 127
web_site = www.bulutkare.com
boolean_option = True

如何在我的python模块 AUTOMATICALLY 中解析 boolean_option 行作为布尔变量?我知道,它可以通过使用这样的代码进行解析:

boolean_opt = config_parser.get("Bulutkare", "boolean_option")

但是boolean_opt将选项作为String。我的问题是"我的python代码如何自动识别这个选项是一个布尔值?"。因此,我的代码可以将 boolean_opt 初始化为布尔变量。

这可能吗?

1 个答案:

答案 0 :(得分:1)

我认为你想使用getboolean方法:

boolean_opt = config_parser.getboolean("Bulutkare", "boolean_option")

如果你不能拥有一致的配置选项类型,你可以像这样包装get电话:

def get_boolean_or_string(option):
    if option == 'True':
        return True
    elif option == 'False':
        return False
    else:
        return option

boolean_opt = get_boolean_or_string(config_parser.get("Bulutkare", "boolean_option"))

如果您不介意导入ast

import ast

def get_boolean_or_string(option):
    try:
        return ast.literal_eval(option)
    except ValueError:
        return option

boolean_opt = get_boolean_or_string(config_parser.get("Bulutkare", "boolean_option"))