码迷,mamicode.com
首页 > 编程语言 > 详细

Python - configParser模块学习

时间:2017-10-18 23:44:50      阅读:495      评论:0      收藏:0      [点我收藏+]

标签:inf   option   span   try   tab   code   命名   host   打开   

configParser 模块用于操作配置文件

注:Parser汉译为“解析”之意。

配置文件的格式与windows ini文件类似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。

为了更好的理解本文,我们先了解一下配置文件的组成及命名:配置文件(INI文件)由章节(section [sectionName] )、键、值组成(key=value or key:Value)。

 

# 新建一个config 文件 testconfig.ini

[DATABASE]
host = 50.23.190.57
username : TestYang
password = TestYang
port = 3306
database = TestDB

 

具体用法见一下代码,写的很详细了。

#-*-coding:utf-8-*-
# Time:2017/10/18 22:30
# Author:YangYangJun

# 首先导入 ConfigParser 模块

import ConfigParser

# 这里发现 上面这种大写与下面的小写都可以,只是导入的时候是如何写的,下面实例化的时候就如何写。

# import configparser

configFile = testconfig.ini


# 1、创建ConfigParser 实例

config = ConfigParser.ConfigParser()

# 2、读取配置文件

config.read(configFile)

# 3、获取配置文件的章节序列

print config.sections()  # [‘DATABASE‘]


# 4、获取配置文件中对应章节所有键的序列

print config.options(DATABASE)  # [‘host‘, ‘username‘, ‘password‘, ‘port‘, ‘database‘]

# 5、获取配置文件中对应章节 对应键的值

print config.get(DATABASE,host) # 50.23.190.57


# 6、获取配置文件中对应章节的所有键值对

print config.items(DATABASE)  # [(‘host‘, ‘50.23.190.57‘), (‘username‘, ‘TestYang‘), (‘password‘, ‘TestYang‘), (‘port‘, ‘3306‘), (‘database‘, ‘TestDB‘)]



# 7、往配置文件中增加章节section

# 重新实例化一个对象,如果使用上面已经read的对象的话,write的时候会将已经读的内容再写一遍。
writeConfig = ConfigParser.ConfigParser()

# 8、增加章节section
writeConfig.add_section("UserInfo")

# 9、set 往配置文件中的[UserInfo]节点加入键值对

writeConfig.set("UserInfo",username,TestYang)

writeConfig.set("UserInfo",password,TestYangPassWord)

writeConfig.set("UserInfo",age,18)

writeConfig.set("UserInfo",country,China)

# 10、已追加的方式打开已经存在的文件,如果文件不存在则创建该文件

writeConfig.write(open(testconfig.ini,a))

# 上面的写入代码等价于下面的代码
‘‘‘
f = open(‘testconfig.ini‘,‘a‘)
writeConfig.write(f)
‘‘‘

# 注意 如果 分开先写  writeConfig.add_section("UserInfo") 然后在单独执行set 会报如下错误
# 所以 add_section 和 set 要一起写,一起执行
‘‘‘
  raise NoSectionError(section)
ConfigParser.NoSectionError: No section: ‘UserInfo‘
‘‘‘
# 写入后的结果如下
‘‘‘
[UserInfo]
username = TestYang
password = TestYangPassWord
age = 18
country = China
‘‘‘

 

执行后结果如下:

# 新建一个config 文件 testconfig.ini

[DATABASE]
host = 50.23.190.57
username : TestYang
password = TestYang
port = 3306
database = TestDB



[UserInfo]
username = TestYang
password = TestYangPassWord
age = 18
country = China

 

应用实例如下:

# 应用实例,可以新建一个py文件,将使用的方法封装起来

class ReadConfig():
    def __init__(self):

        self.cf = ConfigParser.ConfigParser()
        self.cf.read(configFile)

    def get_UserInfo(self, username):
        value = self.cf.get("UserInfo", username)
        return value

    def get_http(self, name):
        value = self.cf.get("HTTP", name)
        return value

    def get_db(self, name):
        value = self.cf.get("DATABASE", name)
        return value


if __name__ == "__main__":
    getdata = ReadConfig()
    print  getdata.get_UserInfo("username") # TestYang
    print  getdata.get_db("database")  # TestDB

 

Python - configParser模块学习

标签:inf   option   span   try   tab   code   命名   host   打开   

原文地址:http://www.cnblogs.com/BlueSkyyj/p/7683820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!