day5模块学习--configparser模块

   使用ConfigParser模块读写ini文件(http://blog.csdn.net/linda1000/article/details/11729561)

ConfigParserPythonConfigParser Module中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。模块所解析的ini配置文件是由多个section构成,每个section名用中括号‘[]’包含,每个section下可有多个配置项类似于key-value形式,例如:

ConfigParser模块以ConfigParser类为例,其操作基本分为三类:1)初始化;2)读取配置;3)写入配置。

    1. ConfigParser 初始化

使用ConfigParser 首选需要初始化实例,并读取配置文件:

cf = ConfigParser.ConfigParser() cf.read("配置文件名")

    2.基本的读取配置文件

-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()函数。

    3.基本的写入配置文件

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

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

-write(strout)将对configparser类的修改写入。

例如:

configparse文件格式ini:

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
import configparser

#初始化
cf = configparser.ConfigParser() #读取加载文件
cf.read('test.conf') # 读取配置文件
secs = cf.sections()
print("secs",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("str_val",str_val)
print("int_val",int_val) #写入配置文件
#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"))
运行结果如下:
secs ['sec_a', 'sec_b']
options ['a_key1', 'a_key2']
sec_a [('a_key1', '20'), ('a_key2', '10')]
str_val 20
int_val 10

下面用python生成一个configparser的文件格式:

import configparser

config = configparser.ConfigParser()
config["DEFAULT"] = {'ServerAliveInterval': '',
'Compression': 'yes',
'CompressionLevel': ''} config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Host Port'] = '' # mutates the parser
topsecret['ForwardX11'] = 'no' # same here
config['DEFAULT']['ForwardX11'] = 'yes'
with open('example.ini', 'w') as configfile:
config.write(configfile)   
上一篇:Linux进程分配内存的两种方式--brk() 和mmap()


下一篇:(转)log4j(五)——如何控制不同目的地的日志输出?