嵌入式 python之ConfigParser详解

 

1.读取配置文件

-read(filename) 直接读取ini文件内容
-sections() 得到所有的section,并以列表的形式返回
-options(section) 得到该section的所有option
-items(section) 得到该section的所有键值对
-get(section,option) 得到sectionoption的值,返回为string类型
-getint(section,option) 得到sectionoption的值,返回为int类型
 
2. 写入配置文件
-add_section(section) 添加一个新的section
-set( section, option, value) section中的option进行设置
         需要调用write将内容写入配置文件。
 
3.例子
test.conf
[sec_a]
a_key1 = i'm value
a_key2 = 22
 
[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 "valuefor sec_a's a_key1:",str_val
print "valuefor 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"))
 
print
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.可能抛出的异常
exception NoSectionError
Exception raised when a specified section is notfound.
exception DuplicateSectionError
Exception raised if add_section() is called with the name of asection that is already present.
exception NoOptionError
Exception raised when a specified option is not found in thespecified section.
exception InterpolationError
Base class for exceptions raised when problems occur performingstring interpolation.
exception InterpolationDepthError
Exception raised when string interpolation cannot be completedbecause the number of iterations exceeds MAX_INTERPOLATION_DEPTH.Subclass of InterpolationError.
exception InterpolationMissingOptionError
Exception raised when an option referenced from a value does notexist. Subclass of InterpolationError. New in version2.3.
exception InterpolationSyntaxError
Exception raised when the source text into which substitutions aremade does not conform to the required syntax. Subclass ofInterpolationError. New in version 2.3.
exception MissingSectionHeaderError
Exception raised when attempting to parse a file which has nosection headers.
exception ParsingError
Exception raised when errors occur attempting to parse afile.
 
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值