加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

python读conf配置文件--ConfigParser

(2014-07-02 11:14:02)
标签:

python

读取

int

配置

configparser

分类: 资料

发现python读写配置文件比较方便。

 

1) 基本的读取配置文件

     -read(filename) 直接读取ini文件内容

     -sections() 得到所有的section,并以列表的形式返回

     -options(section) 得到该section的所有option

     -items(section) 得到该section的所有键值对

     -get(section,option) 得到sectionoption的值,返回为string类型

     -getint(section,option) 得到sectionoption的值,返回为int类型,还有相应的getboolean()getfloat() 函数。

 

2.基本的写入配置文件

     -add_section(section) 添加一个新的section

     -set( section, option, value) section中的option进行设置,需要调用write将内容写入配置文件。

 

 

配置文件如下:

[db]

db_port = 3306

db_user = root

db_host = 127.0.0.1

db_pass = xgmtest

 

[concurrent]

processor = 20

thread = 10

 

 

示例代码如下

 

#/usr/bin/python

 

import ConfigParser

import string, os, sys

 

cf = ConfigParser.ConfigParser()

 

cf.read("test.conf")

 

#return all section

secs = cf.sections()

print 'sections:', secs

 

opts = cf.options("db")

print 'options:', opts

 

kvs  = cf.items("db")

print 'db:', kvs

 

#read by type

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")

 

#read int

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

 

 

#modify one value and write to file

cf.set("db", "db_pass", "xgmtest")

cf.write(open("test.conf", "w"))

 

 

4.PythonConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParserConfigParserSafeConfigParser RawCnfigParser是最基础的INI文件读取类,ConfigParserSafeConfigParser支持对%(value)s变量的 解析。

 

设定配置文件test2.conf

1.    [portal]

2.    url = http://%(host)s:%(port)s/Portal

3.    host = localhost

4.    port = 8080

 

使用RawConfigParser

1.    import ConfigParser

2.   

3.    cf = ConfigParser.RawConfigParser()

4.   

5.    print "use RawConfigParser() read"

6.    cf.read("test2.conf")

7.    print cf.get("portal", "url")

8.   

9.    print "use RawConfigParser() write"

10.  cf.set("portal", "url2", "%(host)s:%(port)s")

11.  print cf.get("portal", "url2")

 

得到终端输出:

use RawConfigParser() read

http://%(host)s:%(port)s/Portal

use RawConfigParser() write

%(host)s:%(port)s

改用ConfigParser

1.    import ConfigParser

2.   

3.    cf = ConfigParser.ConfigParser()

4.   

5.    print "use ConfigParser() read"

6.    cf.read("test2.conf")

7.    print cf.get("portal", "url")

8.   

9.    print "use ConfigParser() write"

10.  cf.set("portal", "url2", "%(host)s:%(port)s")

11.  print cf.get("portal", "url2")

 

得到终端输出:

use ConfigParser() read

http://localhost:8080/Portal

use ConfigParser() write

localhost:8080

改用SafeConfigParser

1.    import ConfigParser

2.   

3.    cf = ConfigParser.SafeConfigParser()

4.   

5.    print "use SafeConfigParser() read"

6.    cf.read("test2.conf")

7.    print cf.get("portal", "url")

8.   

9.    print "use SateConfigParser() write"

10.  cf.set("portal", "url2", "%(host)s:%(port)s")

11.  print cf.get("portal", "url2")

 

得到终端输出(效果同ConfigParser)

use SafeConfigParser() read

http://localhost:8080/Portal

use SateConfigParser() write

localhost:8080

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有