安装configParser
pip install configparser
读取的配置文件格式要求
#config.ini
[config] #中括号表示第一级,section
name = ConfigParser #用等号将键值对关联起来,key 在configparser中叫 option
function = readConfigFileAndGetValue
version = V1.0
案例1:读取一个文件
# coding = uft-8
import configparser
# 初始化一个configParser对象
cp = configparser.ConfigParser()
# 读取文件
cp.read("config.ini") #无需声明一个对象来获取read的值,直接用cp的get获取对应的值,可以同时读取多个文件
name = cp.get('config', 'name')
function = cp.get('config', 'function')
version = cp.get('config', 'version')
print(name, function, version)
案例2:读取多个文件
#config2.ini
[config]
name2 = test
function1 = 333
[req]
version = 4
# coding = uft-8
import configparser
# 初始化一个configParser对象
cp = configparser.ConfigParser()
# 读取文件
cp.read(["config.ini", 'config2.ini'])#多个文件时需要使用迭代器传入值,eg:列表,元组,集合
name = cp.get('config', 'name')
function = cp.get('config', 'function')
version = cp.get('config', 'version')
version2 = cp.get('req', 'version')
name2 = cp.get('config', 'name2')
print(name, function, version, name2, version2)
案例3:修改配置文件
# coding = uft-8
import configparser
from datetime import datetime
# 初始化一个configParser对象
cp = configparser.ConfigParser()
# 读取文件
cp.read("config.ini")
# 使用has_section来判断是否有这个section配置项,option可以使用has_option方法来判断是否存在
if not cp.has_section('date'):
# 如果没有则添加这个section
cp.add_section("date")
# 并在该section下添加一个名叫today的option项
cp.set("date", "today", datetime.strftime(datetime.now(), '%Y-%m-%d'))
# 修改version的值
cp.set("config", "version", "V2.0")
# 将这些修改写入到配置文件中
with open('config.ini', 'w+') as f:
cp.write(f)
修改之后的config.ini如下:
[config]
name = ConfigParser
function = readConfigFileAndGetValue
version = V2.0
[date]
today = 2022-03-21
案例4: 获取该配置文件的所有section和option
# coding = uft-8
import configparser
from datetime import datetime
# 初始化一个configParser对象
cp = configparser.ConfigParser()
# 读取文件
cp.read("config.ini")
sections = cp.sections()
print("all sections: " + str(sections))
for section in sections:
print(section, cp.options(section))
获取的结果:
all sections: ['config', 'date']
config ['name', 'function', 'version']
date ['today']
案例5:删除某些section和option
# coding = uft-8
import configparser
from datetime import datetime
# 初始化一个configParser对象
cp = configparser.ConfigParser()
# 读取文件
cp.read("config.ini")
# 删除date section,包含下面所有的option都会一并删除
cp.remove_section('date')
# 删除config下的name ,其他option不会受影响
cp.remove_option('config', 'name')
# 修改版本为V3.0
cp.set('config', 'version', 'V3.0')
# 将修改后的结果,另保存到config3.ini文件中
with open('config3.ini', 'w+') as f:
cp.write(f)
删除后的结果:
[config]
function = readConfigFileAndGetValue
version = V3.0