python读写ini文件示例(python读写文件)

很类似java的properties文件xml文件

代码如下:

db_config.ini[baseconf]host=127.0.0.1port=3306user=rootpassword=rootdb_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,osimport 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’, ‘root’), (‘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,timeimport 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 truedef 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)

第二个示例

代码如下:

import osimport 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()

发表评论