|
很类似java的properties文件
xml文件
复制代码 代码如下: db_config.ini [baseconf] host=127.0.0.1 port=3306 user=root password=root db_name=evaluting_sys [concurrent] processor=20
对应的python代码
复制代码 代码如下: #!/usr/bin/python # -*- coding:utf-8 -*- #author: lingyue.wkl #desc: use to db ops #--------------------- #2012-02-18 created
#--------------------- import sys,os import ConfigParser
class Db_Connector: def __init__(self,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__": f = Db_Connector("../conf/db_config.ini")
得到结果: 复制代码 代码如下: section: ['concurrent','baseconf'] options: ['host','db_name','user','password','port'] db: [('host','127.0.0.1'),('db_name','evaluting_sys'),('user','root'),('password',('port','3306')] 127.0.0.1 3306 root root
通用模块:支持命令行+import两种形式 ini_op.py 复制代码 代码如下: #!/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,value) cf.write(open(self.path,'w')) except: return False return True def read_config(config_file_path,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,value): cf = ConfigParser.ConfigParser() try: cf.read(config_file_path) cf.set(field,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,key) else: value = sys.argv[4] write_config(config_file_path,value)
第二个示例
复制代码 代码如下: import os import ConfigParser
def main(): cp = ConfigParser.ConfigParser() cf = open(u"in.ini") cp.readfp(cf)
secs = cp.sections() print cp.sections()
for sec in secs: opts = cp.options(sec) for opt in opts: val = cp.get(sec,opt) val += "test....." cp.set(sec,opt,val)
cp.write(open("out.ini","w"))
if __name__ == '__main__': main()
(编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|