一. 读取配置
- read(filename) 直接读取ini文件内容
- sections() 获取所有的section,并以列表的形式返回
- options(section) 获取该section的所有option
- items(section) 获取该section的所有键值对
- get(section,option) 获取section中option的值,返回为string类型
- getint(section,option) 获取section中option的值,返回为int类型
二. 添加配置
- add_section(section) 添加一个新的section
- set( section, option, value) 对section中的option进行设置
更需要调用write写入配置文件
三. 上码
"""
# config.ini 配置文件
[mysql]
host = 192.168.1.1
port = 3306
user = root
password = password
charset = utf-8
[mongo]
host = 192.168.1.1
port = 3357
user = root
password = password
"""
import configparser
cf=configparser.ConfigParser()
cf.read("config.ini")
print(cf)
secs=cf.sections()
print("sections:",secs)
opts=cf.options("mysql")
print(opts)
for sec in secs:
print(cf.options(sec))
items = cf.items("mysql")
print(items)
val=cf.get("mysql","host")
print(val)
print(type(val))
val=cf.getint("mysql","port")
print(val)
print(type(val))
cf.set("redis","host","192.168.1.2")
cf.add_section("newsection")
cf.set("redis","port","1000")
cf.write(open("config.ini","w"))
ret=cf.has_section("redis")
print(ret)
cf.remove_section("redis")
ret=cf.has_section("redis")
print(ret)
四.应用示例
"""
本代码主要功能是解析配置文件,目前支持INI类的配置文件解析
仅支持读取配置文件,不支持修改配置文件
"""
import os
import configparser
class ConfigReader():
"""
配置文件读取器,
目前仅支持读取INI类的配置文件,不支持修改
"""
def __init__(self, file) -> None:
if not os.path.exists(file):
raise FileNotFoundError("config file is not exists")
self.config = configparser.ConfigParser()
self.config.read(file)
def get_items_by_section(self, section) -> dict:
"""
获取section下的键值对
返回字典格式
"""
if self.config.has_section(section):
section_items = self.config.items(section)
return dict(section_items)
else:
raise ValueError("section is not exists")
if __name__ == "__main__":
config_file = "D:\myprojects\python\config\config.ini"
c = ConfigReader(config_file)
sign_info = c.get_items_by_section("anyway")
print(sign_info)