python讀取ini配置的類封裝代碼實例
更新時間:2020年01月08日 09:57:59 作者:小鋒學長
這篇文章主要介紹了python讀取ini配置的類封裝代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
這篇文章主要介紹了python讀取ini配置的類封裝代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
此為基礎(chǔ)封裝,未考慮過多異常處理
類
# 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)
# 執(zhí)行write寫入, remove和set方法并沒有真正的修改ini文件內(nèi)容,只有當執(zhí)行conf.write()方法的時候,才會修改ini文件內(nèi)容
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
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)嵌套列表及字典并按某一元素去重復功能示例
這篇文章主要介紹了Python實現(xiàn)嵌套列表及字典并按某一元素去重復功能,涉及Python列表嵌套列表、列表嵌套字典,及按照某一元素去重復的相關(guān)操作方法,需要的朋友可以參考下2017-11-11
Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法
這篇文章主要介紹了Pytorch中的variable, tensor與numpy相互轉(zhuǎn)化的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
python中關(guān)于eval函數(shù)的使用及說明
這篇文章主要介紹了python中關(guān)于eval函數(shù)的使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05
神經(jīng)網(wǎng)絡算法RNN實現(xiàn)時間序列預測
這篇文章主要為大家介紹了神經(jīng)網(wǎng)絡算法RNN實現(xiàn)時間序列預測示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04

