python内置库之学习configparser库(一)
1.引言
ini文件简介
[节]
键=值
注:节不能重复出现
2.自己封装了一个增删改查的类,可以参考一下
import configparser
class L_config(object):
def __init__(self,ini_path):
self.config=configparser.ConfigParser()
self.ini_path=ini_path
def r_ini(self):
"""
读
"""
try:
res=self.config.read(self.ini_path)
if not res:
print("没有读到ini文件")
return
return res
except Exception as e:
print("读ini异常"+str(e))
def w_ini(self):
"""
写
"""
try:
with open(self.ini_path,'w') as f:
self.config.write(f)
except Exception as e:
print("写ini异常"+str(e))
def add_ini(self,section,name_value):
"""
增
section:[节]
name=value
"""
try:
code=False
data_ini=self.r_ini()
if section not in data_ini:
self.config.add_section(section)
for key,value in name_value.items():
self.config[str(section)][key]=str(value)
self.w_ini()
code=True
return code
except Exception as e:
print("增加节失败"+str(e))
def del_ini(self,section):
"""
删
"""
try:
code=False
self.r_ini()
if self.config.remove_section(section):
self.w_ini()
code=True
else:
print("删除节不存在")
return code
except Exception as e:
print("删除节异常"+str(e))
def g_ini(self,section,name_value):
"""
改
"""
try:
code=False
self.r_ini()
if str(section) in self.config.sections():
for key,value in name_value.items():
self.config[str(section)][key]=str(value)
self.w_ini()
code=True
else:
print("此节不在ini文件")
return code
except Exception as e:
print("修改节的key,value异常"+str(e))
def select_ini(self,section):
"""
查
"""
try:
data_ini={}
self.r_ini()
data_list=self.config.sections()
if str(section) in data_list:
data=self.config.items(section)
for i in data:
data_ini[i[0]]=i[1]
return data_ini
else:
print("该节不在ini文件中")
except Exception as e:
print("查ini文件失败"+str(e))
cc=L_config('test.ini')
#增
data=cc.add_ini('127.0.0.1',{"ip":"127.0.0.1","port":8089})
print("data1:",data)
#改
data=cc.g_ini('127.0.0.1',{"ip":"127.0.0.1","port":8090})
print("data1:",data)
#查
data=cc.select_ini('127.0.0.1')
print("data1:",data)
#删
data=cc.del_ini('127.0.0.1')
print("data1:",data)