这篇文章主要介绍了python读取ini配置的类封装代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
此为基础封装,未考虑过多异常处理
类
# coding:utf-8
import configparser
import os
class IniCfg():
def __init__(self):
self.conf = configparser.ConfigParser()
self.cfgpath = ''
def checkSection(self, section):
try:
self.conf.items(section)
except Exception:
print(" 无此section,请核对[%s]" % section)
return None
return True
# 读取ini,并获取所有的section名
def readSectionItems(self, cfgpath):
if not os.path.isfile(cfgpath):
print(" 无此文件,请核对路径[%s]" % cfgpath)
return None
self.cfgpath = cfgpath
self.conf.read(cfgpath, encoding="utf-8")
return self.conf.sections()
# 读取一个section,list里面对象是元祖
def readOneSection(self, section):
try:
item = self.conf.items(section)
except Exception:
print(" 无此section,请核对[%s]" % section)
return None
return item
# 读取一个section到字典中
def prettySecToDic(self, section):
if not self.checkSection(section):
return None
res = {}
for key, val in self.conf.items(section):
res[key] = val
return res
# 读取所有section到字典中
def prettySecsToDic(self):
res_1 = {}
res_2 = {}
sections = self.conf.sections()
for sec in sections:
for key, val in self.conf.items(sec):
res_2[key] = val
res_1[sec] = res_2.copy()
res_2.clear()
return res_1
# 删除一个 section中的一个item(以键值KEY为标识)
def removeItem(self, section, key):
if not self.checkSection(section):
return
self.conf.remove_option(section, key)
# 删除整个section这一项
def removeSection(self, section):
if not self.checkSection(section):
return
self.conf.remove_section(section)
# 添加一个section
def addSection(self, section):
self.conf.add_section(section)
# 往section添加key和value
def addItem(self, section, key, value):
if not self.checkSection(section):
return
self.conf.set(section, key, value)
# 执行write写入, remove和set方法并没有真正的修改ini文件内容,只有当执行conf.write()方法的时候,才会修改ini文件内容
def actionOperate(self, mode):
if mode == 'r+':
conf.write(open(self.cfgpath, "r+", encoding="utf-8")) # 修改模式
elif mode == 'w':
conf.write(open(self.cfgpath, "w")) # 删除原文件重新写入
elif mode == 'a':
conf.write(open(self.cfgpath, "a")) # 追加模式写入
cfgpath = r'C:\Users\SXF\Desktop\config.ini'
inicfg = IniCfg()
sections = inicfg.readSectionItems(cfgpath)
print(sections)
content = inicfg.readOneSection('chaoji')
print(content)
dic = inicfg.prettySecToDic('chaoji')
print(dic)
dic = inicfg.prettySecsToDic()
print(dic)
inicfg.addSection('chaoji22')
content = inicfg.readOneSection('chaoji')
print(content)
测试ini
[chaoji] chaoji_username = 123 chaoji_password = 456 [my] soft_id = 789 sleeptime = asd cnt_count = zxc
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“python读取ini配置的类封装代码实例”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2025年11月06日
2025年11月06日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]