在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在Python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,一起来看看Python常用内置模块之configparser模块的用法吧。
Python ConfigParser模块解析的配置文件的格式比较像ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项。以下是configparser模块的主要用法:
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将内容写入配置文件。
关于configparser模块的使用代码示例如下:
#!/usr/bin/env python # coding:utf-8 import configparser # 实例化一个configparser对象 cf = configparser.ConfigParser() cf.read("test.ini", encoding="utf-8") # 如果section已经存在,会报错 cf.add_section("School") cf.set("School", "IP", "10.15.40.123") cf.set("School", "Mask", "255.255.255.0") cf.set("School", "Gateway", "10.15.40.1") cf.set("School", "DNS", "211.82.96.1") # 写入配置文件 cf.write(open("test.ini", "w")) ip = cf.get("School", "IP") mask = cf.get("School", "mask") gateway = cf.get("School", "Gateway") dns = cf.get("School", "DNS") # 结果为:('10.15.40.123', '255.255.255.0\n10.15.40.1', '211.82.96.1') print((ip, mask + "\n" + gateway, dns))
修改后的ini配置文件如下图(源文件已经存在Match项):
Python读取ini文件还是十分简单的,这里我给出的只是一些简单的使用方法,如果想用更高级的功能,比如和注释有关的功能。可以参考Pyhton官方文档。