Python configparser用法

我们先新建一个配置文件,假设文件名称叫 test.cfg,文件内容如下:

[db]
dbuser = test
dbpassword = test123
dbport = 3308

[email]
emailto = [email protected]

以下代码的运行环境:Win10/Python3.7

读取配置文件的基本操作

  • read(filename):读取文件内容
  • sections():获取所有section,返回list
  • options(section):获取该section所有options,返回list
  • items(section):获取options键值对,返回list
  • get(section,option):获取section的option值,返回string;getint,getboolean,getfloat同理

在test.cfg文件同级目录下新建一个python文件,内容如下:

#coding:utf-8
import configparser

config = configparser.ConfigParser()
config.read("test.cfg")
print(config.sections())
print(config.options("db"))
print(config.items("db"))
print(config.get("db", "dbuser"))
print(config.getint("db", "dbport"))
for s in config.sections():
for items in config.items(s):
# 打印键值对
print(items)

运行后的结果:

['db', 'emain']
['dbuser', 'dbpassword', 'dbport']
[('dbuser', 'test'), ('dbpassword', 'test123'), ('dbport', '3308')]
test
3308
('dbuser', 'test')
('dbpassword', 'test123')
('dbport', '3308')
('emailto', '[email protected]')

注意:在读取配置文件的时候,传入的sections,options要实际存在,否则会报错。

写入配置文件的基本操作

  • write(filename):将config对象写入配置文件。如果没有事先read而直接write,则会覆盖原先的文件内容
  • add_section(section):添加新的section
  • set(section,option,value):给section中option赋值(新增,或者是修改)
  • remove_setcion(section):删除某section
  • remove_option(section,option):删除该section下的option

在test.cfg文件同级目录下新建一个python文件,内容如下:

#coding:utf-8
import configparser

filename = "test.cfg"
config = configparser.ConfigParser()
config.read(filename)
config.add_section("user")
config.set("user", "name", "Root")
if "db" not in config.sections():
config.add_section("db")
config.set("db","dbuser","platform")
with open(filename, "w+") as f:
config.write(f)

注意:在对section操作之前,要先判断section是否存在,避免运行时抛异常。

运行后,test.cfg文件内容被修改为:

[db]
dbuser = platform
dbpassword = test
dbport = 3308

[email]
emailto = test@qq.com

[user]
name = Root

至此,ConfigParser模块的使用就介绍完了,用法比较简单,易上手。