需求:写个项目,用到数据库,多个地方使用,不能硬编码。很类似java的properties文件Python支持ini文件的读取涉及模块:ConfigParserxml文件
- 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", "root"), ("port", "3306")]
127.0.0.1 3306 root root