您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)python怎么讀取ini配置的類封裝,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
Python是一種跨平臺的、具有解釋性、編譯性、互動(dòng)性和面向?qū)ο蟮哪_本語言,其最初的設(shè)計(jì)是用于編寫自動(dòng)化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨(dú)立的項(xiàng)目和大型項(xiàng)目。
此為基礎(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() # 讀取一個(gè)section,list里面對象是元祖 def readOneSection(self, section): try: item = self.conf.items(section) except Exception: print(">> 無此section,請核對[%s]" % section) return None return item # 讀取一個(gè)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 # 刪除一個(gè) section中的一個(gè)item(以鍵值KEY為標(biāo)識) def removeItem(self, section, key): if not self.checkSection(section): return self.conf.remove_option(section, key) # 刪除整個(gè)section這一項(xiàng) def removeSection(self, section): if not self.checkSection(section): return self.conf.remove_section(section) # 添加一個(gè)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)容,只有當(dāng)執(zhí)行conf.write()方法的時(shí)候,才會修改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
關(guān)于“python怎么讀取ini配置的類封裝”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯(cuò),請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。