在Python中读取配置文件(使用ConfigParser存储/读取嵌套数据)

时间:2012-02-15 11:14:01

标签: python configuration pyyaml

我正在编写一个列表处理脚本,需要读取列表中每个项目的配置数据。配置数据最好表示为嵌套树。

我通常会使用YAML来存储数据 - 但我认为使用ConfigParser会更加Pythonic方法 - 并使脚本对其他Python编码器更加“透明” - 因为有惊人的人不熟悉YAML格式。

我已经快速查看configParser documentation,但我无法确定它是否可以处理嵌套数据。

我的配置数据将具有以下结构:

<markers>
    <marker>
        <date></date>
        <value></value>
    </marker>
</markers>
<items>
    <item>
        <start></start>
        <end></end>
        <mcc>
           <chg>
                <date></date>
                <ival></ival>
                <fval></fval>
           </chg>
        </mcc>
    </item>
</items>

我可以使用ConfigParser在配置文件中读取/(写入)这种嵌套数据吗? (我更感兴趣的是能够阅读而不是编写配置文件。我不介意在必要时手动编写配置文件。)

2 个答案:

答案 0 :(得分:7)

不,configparser不支持嵌套。你可以改为configObj。它已经成熟并且使用得非常广泛。

答案 1 :(得分:2)

根据您的xml数据,您需要部分和子部分。所以你可以使用ConfigParser,但你必须给子节提供一些含义,如

[markers]
[markers.marker]
date=''
value=''

[items]
[items.item]
start=''
end=''
[items.item.mcc]
[items.item.mcc.chg]
date=''
ival=''
fval=''

然后你必须覆盖getsection函数来获取嵌套数据。