[python] 一个INI配置文件封装模块
def ini_init(self,ini_dict:dict={})
def ini_init(self,ini_dict:dict={}): if os.path.exists(self.ini_f): print("exist") else: with open(self.ini_f,"w") as p: print("create ok") self.conf.read(self.ini_f) for idx in ini_dict: if not self.conf.has_section(idx): self.conf.add_section(idx) for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) self.conf.write(open(self.ini_f,'w'))
没有就创建并设定键值;
def ini_read(self,ini_dict:dict={}):
def ini_read(self,ini_dict:dict={}): self.ini_init(ini_dict) self.conf.read(self.ini_f) for idx in ini_dict: for idxx in ini_dict[idx]: if "_bool" in idxx: ini_dict[idx][idxx]=self.conf.getboolean(idx,idxx) elif "_int" in idxx: ini_dict[idx][idxx]=self.conf.getint(idx,idxx) elif "_float" in idxx: ini_dict[idx][idxx]=self.conf.getfloat(idx,idxx) else: ini_dict[idx][idxx]=self.conf.get(idx,idxx) return True
根据键值返回对应得类型
def ini_write(self,ini_dict:dict={}):
def ini_write(self,ini_dict:dict={}): self.conf.read(self.ini_f) self.ini_init(ini_dict) for idx in ini_dict: for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) print("done") self.conf.write(open(self.ini_f,'w')) return True
将键值对写入
def __init__(self,file_path:str="./config.ini") -> None:
def __init__(self,file_path:str="./config.ini") -> None: ''' 设定ini文件路径 ''' self.ini_f = file_path self.conf = configparser.ConfigParser()
类初始化设定文件路径并生成对象
ALL
import configparser import os class Ini: def __init__(self,file_path:str="./config.ini") -> None: ''' 设定log文件路径 ''' self.ini_f = file_path self.conf = configparser.ConfigParser() def ini_init(self,ini_dict:dict={}): if os.path.exists(self.ini_f): print("exist") else: with open(self.ini_f,"w") as p: print("create ok") self.conf.read(self.ini_f) for idx in ini_dict: if not self.conf.has_section(idx): self.conf.add_section(idx) for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) self.conf.write(open(self.ini_f,'w')) def ini_read(self,ini_dict:dict={}): self.ini_init(ini_dict) self.conf.read(self.ini_f) for idx in ini_dict: for idxx in ini_dict[idx]: if "_bool" in idxx: ini_dict[idx][idxx]=self.conf.getboolean(idx,idxx) elif "_int" in idxx: ini_dict[idx][idxx]=self.conf.getint(idx,idxx) elif "_float" in idxx: ini_dict[idx][idxx]=self.conf.getfloat(idx,idxx) else: ini_dict[idx][idxx]=self.conf.get(idx,idxx) return True def ini_write(self,ini_dict:dict={}): self.conf.read(self.ini_f) self.ini_init(ini_dict) for idx in ini_dict: for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) print("done") self.conf.write(open(self.ini_f,'w')) return True if __name__=="__main__": test = {"Test1":{"cnblogs":"https://www.cnblogs.com/hardfood/","bilibili":"https://space.bilibili.com/68973181","uio_str":"opop"}, "Test2":{"Test_int":233}} ini_f ="./config.ini" xe = Ini(ini_f) xe.ini_write(test) # xe.ini_read(test) print(test)
运行后ini文件内容
[Test1] cnblogs = https://www.cnblogs.com/hardfood/ bilibili = https://space.bilibili.com/68973181 uio_str = opop [Test2] test_int = 233
读文件操作
inifile
[Test1] cnblogs = https://www.cnblogs.com/hardfood/ bilibili = https://space.bilibili.com/68973181 uio_str = opop [Test2] test_int = 233
code
import configparser import os class Ini: def __init__(self,file_path:str="./config.ini") -> None: ''' 设定log文件路径 ''' self.ini_f = file_path self.conf = configparser.ConfigParser() def ini_init(self,ini_dict:dict={}): if os.path.exists(self.ini_f): print("exist") else: with open(self.ini_f,"w") as p: print("create ok") self.conf.read(self.ini_f) for idx in ini_dict: if not self.conf.has_section(idx): self.conf.add_section(idx) for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) self.conf.write(open(self.ini_f,'w')) def ini_read(self,ini_dict:dict={}): self.ini_init(ini_dict) self.conf.read(self.ini_f) for idx in ini_dict: for idxx in ini_dict[idx]: if "_bool" in idxx: ini_dict[idx][idxx]=self.conf.getboolean(idx,idxx) elif "_int" in idxx: ini_dict[idx][idxx]=self.conf.getint(idx,idxx) elif "_float" in idxx: ini_dict[idx][idxx]=self.conf.getfloat(idx,idxx) else: ini_dict[idx][idxx]=self.conf.get(idx,idxx) return True def ini_write(self,ini_dict:dict={}): self.conf.read(self.ini_f) self.ini_init(ini_dict) for idx in ini_dict: for idxx in ini_dict[idx]: self.conf.set(idx,idxx,str(ini_dict[idx][idxx])) print("done") self.conf.write(open(self.ini_f,'w')) return True if __name__=="__main__": test = {"Test1":{"cnblogs":1,"bilibili":1,"uio_str":1}, "Test2":{"Test_int":233}} ini_f ="./config.ini" xe = Ini(ini_f) # xe.ini_write(test) xe.ini_read(test) print(test)