Python - configParser模块学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - configParser模块学习相关的知识,希望对你有一定的参考价值。

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模块学习的主要内容,如果未能解决你的问题,请参考以下文章

Python - configParser模块学习

Python学习之旅---模块介绍(configparser 字典配置解析模块)

python学习-shutil,configparser模块

Python学习笔记——基础篇第六周——PyYAML & configparser模块

python 之ConfigParser模块学习

python基础学习第七天