需求:
寫個項目,用到數據庫,多個地方使用,不能硬編碼。很類似java的properties文件
Python支持ini文件的讀取
涉及模塊:
ConfigParser
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', 'root'), ('port', '3306')]
127.0.0.1 3306 root root