configparser

是python标准库中唯一 一个具有指定的配置文件操作,

  1. 基本的读取配置文件
    -read(filename) 直接读取ini文件内容
    -sections() 得到所有的section,并以列表的形式返回
    -options(section) 得到该section的所有option
    -items(section) 得到该section的所有键值对
    -get(section,option) 得到section中option的值,返回为string类型
    -getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。

  2. 基本的写入配置文件
    -add_section(section) 添加一个新的section
    -set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。

注意事项

配置参数读出来都是字符串类型, 参数运算时,注意类型转换,另外,对于字符型参数,不需要加“”

应用

支持配置文件(.ini、 .conf、 .cfg)的读写

缺点

1,不能区分大小写。
2,重新写入的ini文件不能保留原有INI文件的注释。
3,重新写入的ini文件不能保持原有的顺序。
4,不支持嵌套。
5,不支持格式校验。

无序的问题

举例
默认的ConfigParser对于选项是按照字母顺序排列的。

>>> from ConfigParser import ConfigParser
>>> cf = ConfigParser()
>>> cf.add_section('d')
>>> cf.set('d', 'name', 'smallfish')
>>> cf.add_section('a')
>>> cf.set('a', 'name', 'smallfish2')
>>> cf.write(open('d:/a.ini', 'w'))
>>> cf = None

生成配置如下:

[a]

name = smallfish2

[d]

name = smallfish

对ConfigParser中section的顺序,属于字典,本身就是无序的。ConfigObj库还不错,可以实现顺序

>>> from configobj import ConfigObj
>>> config = ConfigObj()
>>> config.filename = 'd:/a.ini'
>>> config['d'] = {}
>>> config['d']['name'] = 'smallfish'
>>> config['a'] = {}
>>> config['a']['name'] = 'smallfish2'
>>> config.write()

生成配置如下:

[d]

name = smallfish

[a]

name = smallfish2

ConfigObj

为configparser的升级版

读写操作,参考文章:
python 使用ConfigParser,ConfigObj读取配置
https://blog.csdn.net/iteye_3128/article/details/82541613

10-06 18:12