Python读取修改ini配置文件[ConfigParser]

发布于 2019-09-26 作者 风铃 107次 浏览 版块 前端


使用到的包:ConfigParser 文档



代码托管位置 github-pytools



需求



写个项目,用到数据库,多个地方使用,不能硬编码。很类似java的properties文件



Python支持ini文件的读取



ini文件



db_config.ini













1


2


3


4


5


6


7


8





[baseconf]


host=127.0.0.1


port=3306


user=root


password=root


dbname=evalutingsys


[concurrent]


processor=20





示例代码














1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34





#!/usr/bin/python


#
-- coding:utf-8 --


#author:
lingyue.wkl


#desc:
use to db ops


#———————


#2012-02-18
created


#———————


 


import
sys,os



import
ConfigParser



def
test(config_file_path):



    cf
=
ConfigParser.ConfigParser()



    cf.read(config_file_path)


 


    s
=
cf.sections()



    print
‘section:‘,
s



 


    o
=
cf.options("baseconf")



    print
‘options:‘,
o



 


    v
=
cf.items("baseconf")



    print
‘db:‘,
v



 


    db_host
=
cf.get("baseconf",
"host")



    db_port
=
cf.getint("baseconf",
"port")



    db_user
=
cf.get("baseconf",
"user")



    db_pwd
=
cf.get("baseconf",
"password")



 


    print
db_host,
db_port,
db_user,
db_pwd



 


    cf.set("baseconf",
"db_pass",
"123456")



    cf.write(open("config_file_path",
"w"))



if
name
==
"main":



    test("../conf/db_config.ini")





通用模块init_op.py



支持命令行+import两种














1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


51


52


53


54


55


56


57


58


59


60


61


62





#!/usr/bin/python


#
-- coding:utf-8 --


#author:
lingyue.wkl


#desc:
use to read ini


#———————


#2012-02-18
created


#2012-09-02
changed for class support


#———————


import
sys,os,time



import
ConfigParser



 


class
Config:



    def
init(self,
path):



        self.path
=
path



        self.cf
=
ConfigParser.ConfigParser()



        self.cf.read(self.path)


    def
get(self,
field,
key):



        result
=
""



        try:


            result
=
self.cf.get(field,
key)



        except:


            result
=
""



        return
result



    def
set(self,
filed,
key,
value):



        try:


            self.cf.set(field,
key,
value)



            cf.write(open(self.path,‘w’))


        except:


            return
False


        return
True


 


def
read_config(config_file_path,
field,
key):


    cf
=
ConfigParser.ConfigParser()



    try:


        cf.read(config_file_path)


        result
=
cf.get(field,
key)



    except:


        sys.exit(1)


    return
result



 


def
write_config(config_file_path,
field,
key,
value):



    cf
=
ConfigParser.ConfigParser()



    try:


        cf.read(config_file_path)


        cf.set(field,
key,
value)



        cf.write(open(config_file_path,‘w’))


    except:


        sys.exit(1)


    return
True


 


if
name
==
"main":



  
if
len(sys.argv)  4:



      sys.exit(1)


 


  
config_file_path
=
sys.argv[1]


  
field
=
sys.argv[2]



  
key
=
sys.argv[3]



  
if
len(sys.argv)
==
4:



      print
read_config(config_file_path,
field,
key)



  
else:



      value
=
sys.argv[4]



      write_config(config_file_path,
field,
key,
value)






收藏
暂无回复