【python 模块】configparser 配置文件读写模块实践

本文介绍了Python的ConfigParser模块,用于读写配置文件。通过实例展示了如何读取、写入、修改和删除配置文件中的section和option。此外,还提供了检查配置文件内容、获取所有section和option的方法。
摘要由CSDN通过智能技术生成

安装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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

merlin’s girl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值