#-*- encoding:UTF-8 -*- import ConfigParser def main(): #初始化 cf = ConfigParser.ConfigParser() cf.read("test.conf") # 获得所有的section section = cf.sections() print ‘section:‘, section #获取指定section下所有的option(key) keys = cf.options("db") print ‘options:‘, keys #获取指定section的option的值 value = cf.items("db") print ‘db:‘, value #可以按照类型读取出来,同样的还有getfloat、getboolean db_host = cf.get("db", "db_host") db_port = cf.getint("db", "db_port") db_user = cf.get("db", "db_user") db_pass = cf.get("db", "db_pass") # 返回的是整型的 threads = cf.getint("concurrent", "thread") processors = cf.getint("concurrent", "processor") print "db_host:", db_host print "db_port:", db_port print "db_user:", db_user print "db_pass:", db_pass print "thread:", threads print "processor:", processors #修改一个option(key)的值,(记得写回去) cf.set("db", "db_pass", "hanhong") cf.write(open("test.conf", "w")) #添加一个section。(写回去) cf.add_section(‘liuqing‘) cf.set(‘liuqing‘, ‘int‘, ‘15‘) cf.set(‘liuqing‘, ‘bool‘, ‘true‘) cf.set(‘liuqing‘, ‘float‘, ‘3.1415‘) cf.set(‘liuqing‘, ‘baz‘, ‘fun‘) cf.set(‘liuqing‘, ‘bar‘, ‘Python‘) cf.set(‘liuqing‘, ‘foo‘, ‘%(bar)s is %(baz)s!‘) cf.write(open("test.conf", "w")) #移除section 或者option 。(只要进行了修改就要写回) cf.remove_option(‘liuqing‘,‘int‘) cf.remove_section(‘liuqing‘) cf.write(open("test.conf", "w")) if __name__ == "__main__": main()
输出:
1
2
3
4
5
6
7
8
9 |
section: [ ‘db‘ , ‘concurrent‘ ] options: [ ‘db_host‘ , ‘db_port‘ , ‘db_user‘ , ‘db_pass‘ ] db: [( ‘db_host‘ , ‘127.0.0.1‘ ), ( ‘db_port‘ , ‘22‘ ), ( ‘db_user‘ , ‘root‘ ), ( ‘db_pass‘ , ‘rootroot‘ )] db_host: 127.0 . 0.1 db_port: 22 db_user: root db_pass: rootroot thread: 10 processor: 20 |
python 之ConfigParser,布布扣,bubuko.com
原文:http://www.cnblogs.com/yunsicai/p/3571167.html