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

来源:互联网 发布:linux mint 18 编辑:程序博客网 时间:2024/06/05 10:58

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

原创粉丝点击