configparser模块用来管理类似于windows下的ini文件格式的配置文件,在python2中此模块名为Configparser.
配置文件格式如下:
config.ini
[userinfo] -------> section
username = super
passwd = 12345
lockstatus = 0
[dbconfig] -------------> section
host = 127.0.0.1
文件元素描述为:
section: 节点名,配置文件中的所有 [] 的集合 section = [‘userinfo’,’dbconfig’]
item : 节点下的所有配置项 section[0].item = [(‘username’, ‘super’), (‘passwd’, ‘12345’),(‘lockstatus’,’0’)]
options : item中的每一行配置的key section[0].item。options = [‘username’, ‘passwd’, ‘lockstatus’]
1 读取配置文件
import configparser
def configfile_read():
config = configparser.ConfigParser()
config.read("config.ini")
section = config.sections()
print("Sections: ", section)
print("options: ", config.options(section[0]))
print("items(section[0]): ", config.items(section[0]))
for k, v in config.items(section[0]):
print("key = {0}, value = {1}".format(k, v))
运行结果:
Sections: [‘userinfo’, ‘dbconfig’]
options: [‘username’, ‘passwd’, ‘lockstatus’]
items(section[0]): [(‘username’, ‘super’), (‘passwd’, ‘12345’), (‘lockstatus’, ‘0’)]
key = username, value = super
key = passwd, value = 12345
key = lockstatus, value = 0
2 添加配置文件
import configparser
def configfile_add():
config = configparser.ConfigParser()
with open("config.ini", "a+") as f:
config.add_section("userinfo2")
config.set("userinfo2", "username", "peter")
config.set("userinfo2", "passwd", "12345")
config.set("userinfo2", "lockstatus", "0")
config.write(f)
运行结果:
[userinfo2]
username = peter
passwd = 12345
lockstatus = 0
3 删除配置文件
def configfile_del():
config = configparser.ConfigParser()
config.read("config.ini")
config.remove_option("userinfo2", "lockstatus")
config.remove_section("userinfo2")
with open(CheckPath + "\config.ini", "w+") as f:
config.write(f)
删除section时,不管section下内容是否为空将整个section全部删除,如上将删除 [userinfo2]的整个信息。
4 更新配置文件
def configfile_update():
i = 0
config = configparser.ConfigParser()
config.read(CheckPath + "\config.ini")
section = config.sections()
while len(section) > i:
if section[i] == 'userinfo2':
print(config.options(section[i]))
config.set(section[i], "username", "修改username的值")
with open(CheckPath + "\config.ini", "w+") as f:
config.write(f)
break
i += 1