Python 解析配置模块之ConfigParser详解
来源:互联网 发布:网络教育哪个机构好 编辑:程序博客网 时间:2024/05/19 02:26
测试配置文件test.conf内容如下:
[first]
w = 2
v: 3
c =11-3
[second]
sw=4
test: hello
测试配置文件中有两个区域,first和second,另外故意添加一些空格、换行。
下面解析:
>>> import ConfigParser
>>> conf=ConfigParser.ConfigParser()
>>> conf.read('test.conf')
['test.conf']
>>> conf.sections() #获得所有区域
['first', 'second']
>>> for sn in conf.sections():
... print conf.options(sn) #打印出每个区域的所有属性
...
['w', 'v', 'c']
['sw', 'test']
获得每个区域的属性值:
for sn in conf.sections():
print sn,'-->'
for attr in conf.options(sn):
print attr,'=',conf.get(sn,attr)
输出:
first -->
w = 2
v = 3
c = 11-3
second -->
sw = 4
test = hello
好了,以上就是基本的使用过程,下面是动态的写入配置,
cfd=open('test2.ini','w')
conf=ConfigParser.ConfigParser()
conf.add_section('test') #add a section
conf.set('test','run','false')
conf.set('test','set',1)
conf.write(cfd)
cfd.close()
1 基本的读取配置文件-read(filename) 直接读取ini文件内容-sections() 得到所有的section,并以列表的形式返回-options(section) 得到
1.基本的读取配置文件
-read(filename) 直接读取ini文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到section中option的值,返回为string类型
-getint(section,option) 得到section中option的值,返回为int类型,还有相应的getboolean()和getfloat() 函数。
2.基本的写入配置文件
-add_section(section) 添加一个新的section
-set( section, option, value) 对section中的option进行设置,需要调用write将内容写入配置文件。
3.基本例子
test.conf
[sec_a]
a_key1 = 20
a_key2 = 10
[sec_b]
b_key1 = 121
b_key2 = b_value2
b_key3 = $r
b_key4 = 127.0.0.1
parse_test_conf.py
import
ConfigParser
cf
=
ConfigParser.ConfigParser()
#read config
cf.read(
"test.conf"
)
# return all section
secs
=
cf.sections()
print
'sections:'
, secs
opts
=
cf.options(
"sec_a"
)
print
'options:'
, opts
kvs
=
cf.items(
"sec_a"
)
print
'sec_a:'
, kvs
#read by type
str_val
=
cf.get(
"sec_a"
,
"a_key1"
)
int_val
=
cf.getint(
"sec_a"
,
"a_key2"
)
print
"value for sec_a's a_key1:"
, str_val
print
"value for sec_a's a_key2:"
, int_val
#write config
#update value
cf.
set
(
"sec_b"
,
"b_key3"
,
"new-$r"
)
#set a new value
cf.
set
(
"sec_b"
,
"b_newkey"
,
"new-value"
)
#create a new section
cf.add_section(
'a_new_section'
)
cf.
set
(
'a_new_section'
,
'new_key'
,
'new_value'
)
#write back to configure file
cf.write(
open
(
"test.conf"
,
"w"
))
得到终端输出:
sections: [
'sec_b'
,
'sec_a'
]
options: [
'a_key1'
,
'a_key2'
]
sec_a: [(
'a_key1'
,
"i'm value"
), ('a_key2
', '
22')]
value
for
sec_a
's a_key1: i'
m value
value
for
sec_a's a_key2: 22
更新后的test.conf
[sec_b]
b_newkey = new-value
b_key4 = 127.0.0.1
b_key1 = 121
b_key2 = b_value2
b_key3 = new-$r
[sec_a]
a_key1 = i'm value
a_key2 = 22
[a_new_section]
new_key = new_value
4.Python的ConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigParser支持对%(value)s变量的解析。
设定配置文件test2.conf
[portal]
url = http:
//
%(host)s:%(port)s
/Portal
host = localhost
port = 8080
使用RawConfigParser:
import
ConfigParser
cf
=
ConfigParser.RawConfigParser()
print
"use RawConfigParser() read"
cf.read(
"test2.conf"
)
print
cf.get(
"portal"
,
"url"
)
print
"use RawConfigParser() write"
cf.
set
(
"portal"
,
"url2"
,
"%(host)s:%(port)s"
)
print
cf.get(
"portal"
,
"url2"
)
得到终端输出:
use RawConfigParser()
read
http:
//
%(host)s:%(port)s
/Portal
use RawConfigParser() write
%(host)s:%(port)s
改用ConfigParser:
import
ConfigParser
cf
=
ConfigParser.ConfigParser()
print
"use ConfigParser() read"
cf.read(
"test2.conf"
)
print
cf.get(
"portal"
,
"url"
)
print
"use ConfigParser() write"
cf.
set
(
"portal"
,
"url2"
,
"%(host)s:%(port)s"
)
print
cf.get(
"portal"
,
"url2"
)
得到终端输出:
use ConfigParser()
read
http:
//localhost
:8080
/Portal
use ConfigParser() write
localhost:8080
改用SafeConfigParser:
import
ConfigParser
cf
=
ConfigParser.SafeConfigParser()
print
"use SafeConfigParser() read"
cf.read(
"test2.conf"
)
print
cf.get(
"portal"
,
"url"
)
print
"use SateConfigParser() write"
cf.
set
(
"portal"
,
"url2"
,
"%(host)s:%(port)s"
)
print
cf.get(
"portal"
,
"url2"
)
得到终端输出(效果同ConfigParser):
use SafeConfigParser()
read
http:
//localhost
:8080
/Portal
use SateConfigParser() write
localhost:8080
ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单。 直接上代码,不解释,不多说。
配置文件的格式是: []包含的叫section, section 下有option=value这样的键值
配置文件 test.conf
[section1]name = tankage = 28[section2]ip = 192.168.1.1port = 8080
Python代码
# -* - coding: UTF-8 -* - import ConfigParserconf = ConfigParser.ConfigParser()conf.read("c:\\test.conf")# 获取指定的section, 指定的option的值name = conf.get("section1", "name")print(name)age = conf.get("section1", "age")print age#获取所有的sectionsections = conf.sections()print sections#写配置文件# 更新指定section, option的值conf.set("section2", "port", "8081")# 写入指定section, 增加新option的值conf.set("section2", "IEPort", "80")# 添加新的 sectionconf.add_section("new_section")conf.set("new_section", "new_option", "http://www.cnblogs.com/tankxiao")# 写回配置文件conf.write(open("c:\\test.conf","w"))
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- Python 解析配置模块之ConfigParser详解
- 嵌入式 python之ConfigParser配置解析模块
- python模块之ConfigParser:解析配置文件模块
- Python之配置文件解析模块ConfigParser简介
- python ConfigParser模块详解
- Python模块之: ConfigParser
- python 之ConfigParser模块
- python模块之ConfigParser
- Python模块之ConfigParser
- Python模块之ConfigParser
- Python模块之ConfigParser
- python之ConfigParser模块
- python模块之ConfigParser: 用python解析配置文件
- 总结替换jar包中指定文件的步骤
- iOS开发:仿支付宝界面拖拽按钮动画
- 分分钟解决iOS开发中App启动广告的功能
- java 原型模式
- abc
- Python 解析配置模块之ConfigParser详解
- 设计一个通用的BaseActivity
- Fresco的缓存机制
- abc
- 关于JavaScript中的delete
- python连接oracle数据库
- Java线程中run和start方法的区别
- 【Halcon】Halcon学习之七:改变图像的现实方式和大小
- idea 的10大常用快捷键