configparser简介
- ConfigParser模块已在Python 3中重命名为configparser
- 该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于.ini的文件结构
ini文件相关知识
- 键值对可用=或者:进行分隔
- section的名字是区分大小写的,而option的名字是不区分大小写的
- 键值对中头部和尾部的空白符会被去掉
- 值可以为多行
- 配置文件可以包含注释,注释以 ;或者 # 为前缀
ini文件示例
[server]age = 45username = yes# server就是section# age、username就是opti
操作ini文件
- 实例化ConfigParser类
- 读取配置文件
- 操作配置文件
1 import configparser23 filename = \'F:/Interface/config/server.ini\'4 # 实例化configparser5 config = configparser.ConfigParser()67 # 读取配置文件8 config.read(filename, encoding=\"utf-8-sig\")910 # 获取某个option的值(最常见的操作)11 config.get(section=\"server\", option=\"username\")
configparser封装类
为了更好的读取配置文件的信息,对configparser进行封装
1 #!/usr/bin/env python2 # -*- coding: utf-8 -*-34 \"\"\"5 __title__ = 操作配置文件工具类6 \"\"\"78 import configparser91011 class ConfigUtil:12 # 实例化configparser13 config = configparser.ConfigParser()1415 def read(self, filename):16 \"\"\"17 读取配置文件18 :param filename: 配置文件路径19 \"\"\"20 self.config.read(filename, encoding=\"utf-8-sig\")2122 def get(self, _options, _section=\'server\'):23 \"\"\"24 获取某个options值25 :param _options: option26 :param _section: section27 \"\"\"28 try:29 # 方式一:调用方法30 value = self.config.get(section=_section, option=_options, fallback=\"默认值,key不存在则返回此值\")3132 # 方式二:索引33 value = self.config[_section][_options]34 except Exception as e:35 print(\"没有获取到值\")36 value = None37 return value3839 def get_options_key_value(self, _section):40 \"\"\"41 以列表(name,value)的形式返回section中的每个值42 :param _section: 某个section43 :return: list[tuple(key,value)]44 \"\"\"45 return self.config.items(_section)4647 def get_all_section(self):48 \"\"\"49 获取所有section50 \"\"\"51 return self.config.sections()5253 def get_options_by_section(self, _section):54 \"\"\"55 获取section下所有可用options56 \"\"\"57 # 方式一58 keys = []59 for _options in self.config[_section]:60 keys.append(_options)6162 # 方式二(推荐)63 keys = self.config.options(_section)64 return keys6566 def assert_section_in_config(self, _section):67 \"\"\"68 判断section是否存在69 :param _section: 需要判断的section70 \"\"\"71 return _section in self.config7273 def assert_options_in_section(self, _section, _options):74 \"\"\"75 判断options是否存在某个section中76 :param _section: 某个section77 :param _options: 需要判断的options的key值78 \"\"\"79 return _options in self.config[_section]808182 configUtil = ConfigUtil()8384 if __name__ == \'__main__\':85 filename = \'F:/imocInterface/config/server.ini\'86 configUtil.read(filename)87 print(configUtil.get(\"username\"))88 print(configUtil.get_all_section())89 print(configUtil.assert_section_in_config(\"server\"))90 print(configUtil.get_options_by_section(\"server\"))91 print(configUtil.assert_options_in_section(\"server\", \"usernsame\"))92 print(configUtil.get_options_key_value(\"server\"))