Python 学习日知录(五)- 配置文件之二

Python 学习日知录(五)- 配置文件之二

除了基础的section和option外,配置文件还提供了高级一些的用法。

先看一下如下的配置文件:

###############cfg.ini#################
[DEFAULT]
dir = c:/my_app

[basic_config]
temp_dir = %(dir)s/basic_config/

[env_cache]
temp_dir = %(dir)s/env_cache/
###############EOF#####################

运行下面一段代码,打印所有键值对,看看是什么结果:

# -*- coding:utf8 -*-

import ConfigParser  # 载入模块

cp = ConfigParser.ConfigParser()
cp.read('mc_cfg.ini')  # 载入配置文件

for sections in cp.sections():  # section 循环
    print '[ %s ]' % sections  # 打印section名字
    for options in cp.options(sections):  # option 循环
        print '%s = %s' % (options, cp.get(sections, options))  # 打印该section下的所有option键值对
    print '\n'  # 每个section之间空行

运行结果如下:

[ basic_config ]
temp_dir = c:/my_app/basic_config/
dir = c:/my_app

[ env_cache ]
temp_dir = c:/my_app/env_cache/
dir = c:/my_app

可以看到,名字叫DEFAULT的section并没有被打印出来,而其下的option却出现在了其他所有的section下。

[DEFAULT] 字段

这个section下的option相当于定义了一个全局配置,对于其他所有的section都有效。

  • DEFAULT是大小写敏感的
  • 如果其他section有同名的option,则会覆盖全局的定义

内插(interpolation)

注意上面cfg.ini 文件里的

temp_dir = %(dir)s/basic_config/

打印出来的值为:

c:/my_app/basic_config/

原来其中的%(dir)s被同一个section中或全局的dir值代替了,这样就很方便的实现了在全局配置的基础上生成各自局部配置的功能。


参考文献:
1. ConfigParser — Configuration file parser

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值