基础类封装-configparser配置文件类库封装

  1 #!/usr/bin/env python3
  2 # -*- coding: utf-8 -*-
  3 # @Time    : 2019/10/14 23:37
  4 # @Author  : Tang Yiwei
  5 # @Email   : 892398433@qq.com
  6 # @File    : ParseConfigurationFile.py
  7 # @Software: PyCharm
  8 
  9 
 10 from configparser import ConfigParser
 11 
 12 
 13 class ParseConfigFile():
 14 
 15     def __init__(self,configFilePath=None):
 16         self.cf = ConfigParser()
 17         try:
 18             if configFilePath is None:
 19                 raise FileNotFoundError("Can't found config file!")
 20             else:
 21                 self.configFilePath = configFilePath
 22                 self.cf.read(self.configFilePath,encoding="utf-8")
 23         except Exception as e:
 24             raise e
 25 
 26     def getItemSection(self,sectionName):
 27         """
 28         获取配置文件中指定section下所有的option键值对,并以字典类型返回给调用者
 29         注意:
 30         使用self.cf.items(sectionNmae)此种方法获取到的配置文件中的option内容均被转换成小写
 31         如loginPage.username被转换成loginpage.username
 32         :param sectionName:
 33         :return:
 34         """
 35         optionsDict = dict(self.cf.items(sectionName))
 36         return optionsDict
 37 
 38     def getOptionsBySection(self,sectionName):
 39         """
 40         获取指定sectionName下的所有option
 41         :param sectionName:
 42         :return: List Type
 43         """
 44         value = self.cf.options(sectionName)
 45         return value
 46 
 47     def getOptionValue(self,sectionName,optionName):
 48         """
 49         获取指定section下指定的option值
 50         :param sectionName:
 51         :param optionName:
 52         :return:string 类型
 53         """
 54         value = self.cf.get(sectionName,optionName)
 55         return value
 56 
 57     def getOptionValueInt(self,sectionName,optionName):
 58         """
 59         获取指定section下指定的option的值
 60         :param sectionName:
 61         :param optionName:
 62         :return:Int 类型
 63         """
 64         value = self.cf.getint(sectionName,optionName)
 65         return value
 66 
 67     def getSection(self):
 68         """
 69         获取所有的section
 70         :return: List
 71         """
 72         return self.cf.sections()
 73 
 74     def dump(self):
 75         """
 76         打印配置文件中的所有内容
 77         :return:
 78         """
 79         sectionsList = self.cf.sections()
 80         print("="*50)
 81         for i in sectionsList:
 82             print(i)
 83             print(self.cf.items(i))
 84         print("="*50)
 85 
 86     def remove_section(self,section):
 87         """
 88         删除section
 89         :param section:
 90         :param key:
 91         :return:
 92         """
 93         self.cf.remove_section(section)
 94 
 95 
 96     def remove_option(self,section,key):
 97         """
 98         删除option
 99         :param section:
100         :param key:
101         :return:
102         """
103         self.cf.remove_option(section,key)
104 
105     def add_section(self,section):
106         """
107         添加section
108         :param section:
109         :return:
110         """
111         self.cf.add_section(section)
112 
113     def set_item(self,section,key,value):
114         """
115         给指定的Section设置key,value
116         :param section:
117         :param key:
118         :param value:
119         :return:
120         """
121         self.cf.set(section,key,value)
122 
123     def save(self):
124         """
125         保存配置文件
126         :return:
127         """
128         fp = open(self.configFilePath,'w') # with open(self.configFilePath,"w+") as f:self.cf.write(f)
129         self.cf.write(fp)
130         fp.close()
131 
132 
133 if __name__ == "__main__":
134     pass

 

posted @ 2020-04-14 22:27  此去经年归来仍是少年  阅读(315)  评论(0编辑  收藏  举报