在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介绍。 ConfigParser解析的配置文件的格式比较象ini的配置文件格式,就是文件中由多个section构成,每个section下又有多个配置项,比如:
[db]
db_host=127.0.0.1
db_port=3306
db_user=username
db_pass=password
[concurrent]
thread=10
processor=20
简单写了个测试脚本,内容如下,配置文件test其实就是上面那段内容
import ConfigParser
import string, os, sys
cf = ConfigParser.ConfigParser()
cf.read("test")
s = cf.sections()
print 'section:', s
o = cf.options("db")
print 'options:', o
v = cf.items("db")
print 'db:', v
print '-'*60
db_host = cf.get("db", "db_host")
#getint() will return a number
db_port = cf.getint("db", "db_port")
db_user = cf.get("db", "db_user")
db_pass = cf.get("db", "db_pass")
print db_host
print type(db_host)
print db_port
print type(db_port)
print db_user
print db_pass
输出结果如下
section: ['concurrent', 'db']
options: ['db_port', 'db_user', 'db_host', 'db_pass']
db: [('db_port', '3306'), ('db_user', 'username'), ('db_host', '127.0.0.1'), ('db_pass', 'password')]
------------------------------------------------------------
127.0.0.1
<type 'str'>
3306
<type 'int'>
username
password
我这里只是简单的使用了几个方法而已。除了读以外,还可以写入一些内容到配置文件。当然,现在暂时不需要用到,所以没去关注。
关于ConfigParser 模块更多详细的内容,可以查看官方手册。