一、模块介绍
1.支持文件:该模块支持读取类似如上格式的配置文件,如 windows 下的 .conf 及 .ini 文件等。创建文件保存后缀名为ini或者conf文件
[db]
db_port = 3306
db_user = root
db_host = 127.0.0.1
db_pass = xgmtest
[concurrent]
processor = 20
thread = 10
2.必须实例化
ConfigParser.ConfigParser()进行实例化 例如cf = ConfigParser.ConfigParser()
3.基本方法:
基础读取配置文件
-read(filename) 直接读取文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到section中option的值,返回为string类型
-getint(section,option)得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
基础写入配置文件
-write(fp) 将config对象写入至某个 .init 格式的文件 Write an .ini-format representation of the configuration state.
-add_section(section) 添加一个新的section
-set( section, option, value对section中的option进行设置,需要调用write将内容写入配置文件
-remove_section(section) 删除某个 section
-remove_option(section, option) 删除某个 section 下的 option
4.注意
实例化后写文件(write前面的cf是实例化赋值的变量。即cf= ConfigParser.ConfigParser()。as后面应该write括号里的保持一致)
with open("test2.ini","w+") as f:
cf.write(f)
前 如果没有read原文件cf.read("test2.ini") 就会覆盖原来的文件内容。只有read原文件才会在之前的内容上追加。
5.路径问题
read 和write 如果只写文件名例如 cf.read("test2.ini") 没有加路径 cf.read("E:\senseyun\scripts\config.ini")。默认是在本目录下找文件。
二、示例
# -*- coding:utf-8 -*-
import ConfigParser
cf= ConfigParser.ConfigParser()
cf.read("E:\senseyun\scripts\config.ini")
print (cf.sections())
print (cf.items(cf.sections()[0]))
print (cf.options((cf.sections()[0])))
print (cf.get("db1","db_port"))
print (cf.getint("db1","db_port"))
cf.add_section("cf")
cf.set("cf","1","01")
with open("t2.conf","w+") as f:
cf.write(f)
三、演示代码
# -*- coding:utf-8 -*-
import os
from ConfigParserimport SafeConfigParser
import ConfigParser
cf = ConfigParser.ConfigParser()
#修改配置文件
cf.read("t2.conf")
cf.add_section("cf")
cf.set("cf","1","01")
with open("t2.conf","w+")as f:
cf.write(f)
#读取配置文件
cf.read("t2.conf")
print (cf.sections())
print (cf.items(cf.sections()[0]))
print (cf.options((cf.sections()[0])))
print (cf.get("db","db_port"))
print (cf.getint("db","db_port"))
cf.remove_option("cf","1")
with open("t2.conf","w+")as f:
cf.write(f)
cf.read("t2.conf")
print (cf.items(cf.sections()[2]))#sections 函数没有参数
cf.remove_section("cf")
with open("t2.conf","w+")as f:
cf.write(f)
print (cf.sections())