配置文件是在写脚本过程中经常会用到的,所以读取配置文件的模块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’)