day5-PyYaml和configparser模块

概述

PyYaml模块

YAML是一种数据序列化(serialization )语言,YAML 语言比 XML 、JSON 更容易编写与阅读,是一种比较理想的脚本语言使用数据格式,例如配置文件格式等。

Python也可以很容易的处理ymal文档格式,只不过需要安装一个模块,参考文档

configparser模块

而configparser也用于生成和修改常见配置文档,当前模块的名称在python3.x版本中变更为configparser。

注:Parser汉译为“解析”之意。
配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。
为了更好的理解,我们先了解一下配置文件的组成及命名:配置文件(INI文件)由节(section)、键、值组成。

样例配置文件example.ini

[DEFALUT]
compressionlevel = 9
serveraliveinterval = 45
compression = yes
forwardx11 = yes
 
[bitbucket.org]
user = hg
 
[topsecret.server.com]
host port = 50022
forwardx11 = no

1.生成配置文件

import configparser

#创建ConfigParser实例  
config=configparser.ConfigParser()  
#配置默认全局配置组
config["DEFAULT"]={'ServerAliveInterval':'45',
'Compression':'yes',
'CompressionLevel':'9'}
 
#配置第一个其他组
config['bitbucket.org']={}
#给一个变量赋值
config['bitbucket.org']['User']='hg'

#配置第二个其他组
config['topsecret.server.com']={}
#赋给一个变量
topsecret=config['topsecret.server.com']
#通过变量赋值
topsecret['HostPort']='50022'
topsecret['ForwardX11']='no'
#给全局配置组赋值
config['DEFAULT']['ForwardX11']='yes'
#把配置的内容写入一个配置文件中
with open('example.ini','w')as configfile:
config.write(configfile)

#输出
[DEFAULT]
compressionlevel=9
compression=yes
serveraliveinterval=45
forwardx11=yes

 
[bitbucket.org]
user=hg

[topsecret.server.com]
hostport=50022
forwardx11=no

2.读取配置文件

2.1读取配置组

>>>import configparser
>>>conf=configparser.ConfigParser()
#不读取配置文件
>>> config.sections()  
#组名列表为空  
[]                                

#读取配置文件
>>>conf.read("example.ini") 
#返回配置文件名 
['example.ini']   
#返回除默认配置组的其他组名
>>> config.sections()  
['bitbucket.org', 'topsecret.server.com']                  
>>>conf.defaults()
OrderedDict([('compressionlevel', '9'), ('compression', 'yes'), ('serveraliveinterval', '45'), ('forwardx11', 'yes')])

2.2判断组名是否存在

>>>'bitbucket.org' in config  #组名存在,返回True
True

>>>'bytebong.com' in config #组名不存在,返回False
False

2.3读取组内的值

>>>config['bitbucket.org']['User']  #读取"bitbucket.org"配置组中的值  或 config.get('bitbucket.org','User')
'hg'

>>>config['DEFAULT']['Compression']  #读取默认配置组中的值
'yes'

>>>topsecret=config['topsecret.server.com']   #把配置组赋给一个对象
>>>topsecret['ForwardX11']  #通过对象获取值
'no'

>>>topsecret['Port']   #通过对象获取值
'50022'

>>>config['bitbucket.org']['ForwardX11']  #
'yes'

2.4循环获取组内的key值

for key in config['bitbucket.org']: #循环打印bitbucket.org组下的key值
     print(key)
#输出,打印bitbucket.org组和默认组的key值
user
compressionlevel
compression
serveraliveinterval
forwardx11

configparser增删改查语法

 

posted @ 2017-08-02 15:55  Mr.hu  阅读(103)  评论(0编辑  收藏  举报