配置文件是在写脚本过程中经常会用到的,所以读取配置文件的模块configparser也非常重要,但是很简单。
首先我们的配置文件内容为:
这样的配置文件,[]里面的内容叫section,[]下面的内容叫options,可以使用configparser模块下的get方法获取具体值。
import configparser
#创建一个解析器
config = configparser.ConfigParser()
# 读取出config的内容并解析
config.read(‘config.ini’, encoding = ‘utf-8’)
# 使用get方法获得配置文件内容,返回的内容都是str类型
config.get(‘DATABASE’, ‘host’)
config.get(‘path’, ‘db_path’)
#如果想要获取int类型或者bool,float类型,就在get的后面加int,bool,float
config.getint(‘DATABASE’, ‘port’)
示例代码:
import os
import codecs
import configparser class ReadConfig:
def __init__(self):
with open(config_path) as fd:
data = fd.read()
# 判断data是否带BOM,如果带就删除
if data[:3] == codecs.BOM_UTF8:
data = data[3:]
# 使用codecs.open打开文件,写入的时候更不容易出现编码问题,open方法只能写入str
with codecs.open("config.ini", "w") as file:
file.write(data)
# 将配置文件分割成一块一块的字典形式
self.cf = configparser.ConfigParser()
self.cf.read("config.ini") def get_db(self, name):
value = self.cf.get("DATABASE", name)
return value
不太常用的还有:
# 是否有某个选项
config.has_option()
# 添加选项
config.add_section(‘server’)
config.set(‘server’, ‘url’, ’192.168.1.1’)
# 删除选项
config.remove_option(‘database’, ‘host’)
# 修改
config.set(‘database’, ‘host’, ’192.168.0.0’)
# 获取所有section
config.sections()
# 获取指定section的配置信息
config.items(‘path’)