文件名后缀为.ini类型的配置文件是一种常见的文件格式,常用于存储程序的配置信息,例如数据库连接信息、邮件服务器、程序说明、配置信息等。configparser模块中包含一个ConfigParser类,用于读取和写入INI文件,使用这个模块可以非常简便地读取和写入配置文件。
一、读取文件config.in
上图是一个名字为config.ini的配置文件,读取这个文件的代码如下:
一、导入
# 导入configparser模块(模块命名一般都是小写)
import configparser
二、读取
# 调用configparser模块的ConfigParser()方法,
config = configparser.ConfigParser()
# 使用read()函数读取config.ini文件,这个文件和Python运行文件在同一个文件夹下
config.read('config.ini')
# 使用get()方法读取指定section(节点)下的某键的值
# 读取上面配置文件【description】节点下的'author'键对应的值
author = config.get('description','author') # author变量将被赋值”刘先生“
# 读取上面配置文件【conf】中'data_path'对应的值
# data_path变量将被赋值”e:\我的资料库\tplifexs\总部数据“
data_path = config.get('conf','data_path')
三、写入
必须先有【section】,才能创建其下面的键值对,否则系统会出现报错。
# 添加conf节点
conf.add_section('conf')
conf.set('conf', 'data_path','e:\我的资料库\tplifexs\总部数据')
# 将配置写入文件
filename = 'config.ini'
with open(filename, 'w') as configfile:
conf.write(configfile)
四、常用的读写方法
# 检查section或option是否存在,返回bool值
config.has_section("conf")
config.has_option("conf", "data_path")
# 添加section或option
if not config.has_section("conf"): # 检查是否存在节点conf,不存在则增加
config.add_section("conf")
# 检查节点conf下是否存在"data_path"
if not config.has_option("conf", "data_path"):
config.set("conf", "data_path", "e:\我的资料库\tplifexs\总部数据")
# 保存并写入配置文件config.ini方式一
config.write(open(‘config.ini’, ‘w’))
# 保存并写入文件方式二
with open(‘config.ini’, 'w') as configfile:
conf.write(configfile)
五、说明
在读取文件时,最好使用pathlib库中的Path模块,检查文件是否存在。使用pathlib模块的Path.exists()方法检查文件是否存在,这个模块的方法能捕获异常,如果出现错误,程序不会崩溃。
在程序头首先导入:
from pathlib import Path
调用如下:
if Path('config.ini').exists():
conf = configparser.ConfigParser()
conf.read('config.ini')
......