"""
.. Hint::
配置项 读取ini配置文件
.. literalinclude:: ../../../pyefun/配置项_test.py
:language: python
:caption: 代码示例
:linenos:
:lines: 1-100
"""
import configparser
import io
[文档]class 配置项(configparser.ConfigParser):
def __init__(self, 内容=""):
pass
super().__init__()
if 内容:
self.加载(内容)
[文档] def 加载(self, 内容):
self.read_string(内容) # python3
return self
[文档] def 取所有项名(self, 节名):
return self.options(节名)
[文档] def 取所有项名和值(self, 节名):
return self.items(节名)
[文档] def 取所有节名(self):
return self.sections()
[文档] def 读配置项(self, 节名称, 配置项名称, 默认值=""):
try:
return self.get(节名称, 配置项名称)
except:
return 默认值
[文档] def 写配置项(self, 节名称, 配置项名称, 值):
if not self.has_section(节名称):
self.add_section(节名称)
return self.set(节名称, 配置项名称, 值)
[文档] def 删除配置项(self, 节名称, 配置项名称):
return self.remove_option(节名称, 配置项名称)
[文档] def 删除节名(self, 节名称):
return self.remove_section(节名称)
[文档] def 取数据(self):
fp = io.StringIO()
self.write(fp)
text = fp.getvalue()
fp.close()
return text
[文档] def 取所有结果(self):
字典 = dict()
所有节名 = self.取所有节名()
for 节名 in 所有节名:
字典[节名] = dict()
for v in self.取所有项名和值(节名):
字典[节名][v[0]] = v[1]
return 字典