python读取配置文件以及封装
目录
三、ConfigParser模块 from configparser import ConfigParser
2.封装handleConfig.py【ps:继承父类方法ConfigParser,增加写入方法】
一、配置文件
1.配置文件的作用:
所有的代码和配置都变成模块化和金额配置化,这样就提供了代码的重用性,不用每次都去修改代码内部——可配置化
2.场景举例
- 多处地方需要同一个参数,这个时候最好是用可配置化
- 如果是经常会变化的变量,我们也可以作这个配置——与参数化区分开
3.python中常见的配置文件格式
- .ini
- .conf
- .cfg
4.配置文件对象
- section
- option
二、配置文件的使用
1.什么是配置文件
三、ConfigParser模块 from configparser import ConfigParser
1.实例化ConfigPaeser对象
conf=ConfigPaeser.ConfigPaeser()
2.打开配置文件
conf.read(配置文件的名or地址)
3.读取配置文件中的内容get()
- conf.get(配置区域/块,配置项)
- 获取的值是字符串类型
4.获取数字类型的数据getint(int类型)
- conf.getint(模块名,配置项)
5.获取浮点类型的数据getfloat(float类型)
- conf.getfloat(模块名,配置项)
6.获取布尔值getboolean(bool)
- conf.getboolean(模块名,配置项)
7.获取所有的配置区域sections()(块)
- res1 = conf.sections()
8. 获取配置块下的所有配置项options
- res2 = conf.options("mysql")
9.获取配置块下的所有配置项以键值返回items
- res3 = conf.items("mysql")
10.数据写入set方法
- 参数:第一个配置项,第二个key,第三个值
- conf.set("mysql", "name", "hao") # 写入到文件:注意点使用w模式去写入
- conf.write(fp=open("conf.ini", "w")) # 位置传参,注意到以w方式覆盖写入
四、示例
1.conf.ini文件
2.读取配置文件练习
from configparser import ConfigParser
# 第一步创建一个配置文件解析对象
conf = ConfigParser()
conf.read("conf.ini")
# 读取配置文件中的内容
# 第一个get方法
# 参数一:配置区域(块) 参数二:配置项
res = conf.get("mysql", "port")
print(res) # 获取的值是字符串类型
# 第二个方法:getint:获取数字类型的数据(int类型)
res = conf.getint("mysql", "port")
print(res, type(res))
# 第三个方法:getfloat:获取浮点类型的数据
res = conf.getfloat("mysql", "test_data")
print(res, type(res))
# 第四个方法:getboolean:获取布尔值
res = conf.getboolean("mysql", "test")
print(res, type(res))
"""
扩展
"""
# 获取所有的配置区域(块)
res1 = conf.sections()
print(res1)
# 获取配置块下的所有配置项
res2 = conf.options("mysql")
print(res2)
# 获取配置块下的所有配置项以键值返回
res3 = conf.items("mysql")
print(res3)
"""
数据写入set方法
"""
conf.set("mysql", "name", "hao") # 第一个配置项,第二个key,第三个值
# 写入到文件:注意点使用w模式去写入
conf.write(fp=open("conf.ini", "w")) # 位置传参,注意到以w方式覆盖写入
3.输出
五、配置文件读取的封装【读取,写入】
1.封装目的与需求
1.封装的目的:
使用更简便
2.封装的需求:
简化创建配置文件解析器对象,加载配置文件(需要封装),提示(重写init方法)
读取数据(不进行封装,使用原来的方法),通过继承父类即可
简化写入数据的操作(需要封装),自定义一个write_data方法
2.封装handleConfig.py【ps:继承父类方法ConfigParser,增加写入方法】
from configparser import ConfigParser
class HandleConfig(ConfigParser):
def __init__(self, filename):
super().__init__() # 调用父类init方法
self.filename = filename
self.read(filename)
def write_data(self, section, options, value):
"""写入数据的方法"""
self.set(section, options, value)
self.write(fp=open(self.filename, "w"))
conf2 = HandleConfig("conf.ini")
conf2.sections()
host = conf2.get("mysql", "host")
print(host)