参考:  https://www.cnblogs.com/hanmk/p/9843136.html

    https://www.cnblogs.com/wangjian1226/p/10448752.html

 

python使用自带的configparser模块用来读取配置文件,配置文件的形式类似windows中的ini文件

在使用前需要先安装该模块,使用pip安装即可

2.configparser读取文件的基本方法

依赖: pip install  configparser

 

中文乱码问题:  j解决

 conf.read(path,encoding="utf-8")

 

config.ini

[test]
test = myttwar
rndis = 0
aaa = 0
[kafka]
host = 192.168.25.147:9092

 

 

ConfigUtils.py:(推荐使用)

'''
@author: sea
@time : 2019-10-14
@need : pip install configparser
ConfigUtils.py

'''
#coding:utf-8
from configparser import ConfigParser

class ConfigUtils(ConfigParser,object):
    def __init__(self,path):
        super(ConfigUtils,self).__init__()
        self.path = path
        self.read(path,encoding="utf-8")

def getSection(self,section): # sections = self.sections() #sct = self.options(section)#get all key ,retuen a list
      sct=self.items(section)#get all key -value dict
return sct def reset(self,section): '''#重置某个域下所有key的value为0''' key_list = self.options(section) f = open(self.path,'w') for k in key_list: self.set(section,k,0) self.write(f) f.close() def getValue(self,section,key): value = self.get(section,key) print ("ConfigUtils get value "+str(value)) return value def setValue(self,section,key,value): f = open(self.path,'w') self.set(section,key,value) self.write(f) f.close() def getValue(path,section,key): cf=ConfigUtils(path) v = cf.getValue(section,key) return v def getSection(path): cf=ConfigUtils(path) cf.getValue() def setValue(path,section,key,value): cf=ConfigUtils(path) cf.setValue(section, key, value) if __name__ == '__main__': cf=ConfigUtils('../../config.ini') print(cf) # c=cf.getSection("kafka") # print(c) setValue('../../config.ini', "kafka", "test","test") v = getValue('../../config.ini', "kafka", "test") print(v) # 使用介绍 # cf=ConfigUtils('../../config.ini') #加载配置文件 config.ini # cf.getValue('kafka','host') # 读取某个域下的key值 # cf.getValue('test','test1','1000') #设置某个域下的key所对应的value值,这里最好设置字符串不然再读会报错,具体原因没探究 # for k in cf.options('milestoneCode'): #获取某个域下的所有key # print( k) # cf.reset('test') #重置某个域下所有key的value为0 # '''

 

方式2:直接定义方法:
ConfigUtils.py

 

'''
@author: sea
@time : 2019-10-14
@need : pip install configparser
ConfigUtils.py
'''
import configparser

DEFAULT_PATH="config.ini"

def getSection(path,section):
    '''
      get section from path/xxx.ini
    '''
    conf = configparser.ConfigParser()
    conf.read(path,encoding="utf-8")
#     sections = conf.sections()#all sections
#     sct = conf.options(section) #get all key
    sct = conf.items(section)#get key==value
    return sct


def getValue(path,section,key):
    '''
      get value  from path/xxx.ini  [section]  key=value
    '''
    conf = configparser.ConfigParser()
    conf.read(path,encoding="utf-8")
    value=conf.get(section, key)
    return value

def getV(section,key):
    '''
      get value  from  DEFAULT_PATH/xxx.ini  [section]  key=value
    '''
    path=DEFAULT_PATH
    conf = configparser.ConfigParser()
    conf.read(path,encoding="utf-8")
    value=conf.get(section, key)
    return value


def setValue(path,section,key,value):
    '''
      get value  from path/xxx.ini  [section]  key=value
    '''
    conf = configparser.ConfigParser()
    conf.read(path,encoding="utf-8")
    conf.set(section, key,value)

    
def setv(path,section,key,value):
    '''set key : value  into  path/xxx.ini   [section]  key:value'''
    conf = configparser.ConfigParser()
    conf.read(path)
    f = open(path,'w')
    conf.set(section,key,value)
    conf.write(f)
    f.close()




if __name__ == '__main__':
#     ../../config.ini"
#     s = getSection("../../config.ini","kafka")
#     print(s)
    setv("../../config.ini","kafka","qqq","ewerewre")
    v=getValue("../../config.ini","kafka","ww")
    print(v)
    
    
    

 

posted on 2019-10-15 00:13  lshan  阅读(1859)  评论(0编辑  收藏  举报