Python常用模块之configparse

常用模块 - configparse模块

一、简介

configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。

二、生成配置文件

#! /usr/bin/env python3

# -*- coding:utf-8 -*-

# Note     : 用于测试configparser模块的功能

# 导入模块

import configparser

config = configparser.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['Host Port'] = '50022'  # mutates the parser

topsecret['ForwardX11'] = 'no'  # same here

config['DEFAULT']['ForwardX11'] = 'yes'

"""写入后缀为.ini的文件"""

with open('example.ini', 'w') as configfile:

    config.write(configfile)

运行后,文件“example.ini”中的结果:

[DEFAULT]

compression = yes

compressionlevel = 9

serveraliveinterval = 45

forwardx11 = yes

[bitbucket.org]

user = hg

[topsecret.server.com]

host port = 50022

forwardx11 = no

相关推荐:《Python相关教程》

三、解析配置文件

读取configparser配置文件的实例

#! /usr/bin/env python3

# -*- coding:utf-8 -*-

# Note     : 用于测试configparser模块的功能

# 导入模块

import configparser

config = configparser.ConfigParser()

# 读取配置文件

config.read("example.ini")

print("所有节点==>", config.sections())

print("包含实例范围默认值的词典==>", config.defaults())

for item in config["DEFAULT"]:

    print("循环节点topsecret.server.com下所有option==>", item)

print("bitbucket.org节点下所有option的key,包括默认option==>", config.options("bitbucket.org"))

print("输出元组,包括option的key和value", config.items('bitbucket.org'))

print("bitbucket.org下user的值==>", config["bitbucket.org"]["user"]) # 方式一

topsecret = config['bitbucket.org']

print("bitbucket.org下user的值==>", topsecret["user"]) # 方式二

print("判断bitbucket.org节点是否存在==>", 'bitbucket.org' in config)

print("获取bitbucket.org下user的值==>", config.get("bitbucket.org","user"))

print("获取option值为数字的:host port=", config.getint("topsecret.server.com","host port"))

运行结果:

所有节点==> ['bitbucket.org', 'topsecret.server.com']

包含实例范围默认值的词典==> OrderedDict([('compression', 'yes'), ('compressionlevel', '9'), ('serveraliveinterval', 

'45'), ('forwardx11', 'yes')])

循环节点topsecret.server.com下所有option==> compression

循环节点topsecret.server.com下所有option==> compressionlevel

循环节点topsecret.server.com下所有option==> serveraliveinterval

循环节点topsecret.server.com下所有option==> forwardx11

bitbucket.org节点下所有option的key,包括默认option==> ['user', 'compression', 'compressionlevel', 

'serveraliveinterval', 'forwardx11']

输出元组,包括option的key和value [('compression', 'yes'), ('compressionlevel', '9'), ('serveraliveinterval', '45'), 

('forwardx11', 'yes'), ('user', 'hg')]

bitbucket.org下user的值==> hg

bitbucket.org下user的值==> hg

判断bitbucket.org节点是否存在==> True

获取bitbucket.org下user的值==> hg

获取option值为数字的:host port= 50022

删除配置文件section和option的实例(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)

#! /usr/bin/env python3

# -*- coding:utf-8 -*-

# Note     : 用于测试configparser模块的功能

# 导入模块

import configparser

config = configparser.ConfigParser()

# 读取配置文件

config.read("example.ini")

config.remove_section("bitbucket.org")

"""删除分组"""

config.remove_option("topsecret.server.com", "host port")

"""删除某组下面的某个值"""

config.write(open('example.ini', "w"))

运行后,文件“example.ini”中的结果:

[DEFAULT]

compression = yes

compressionlevel = 9

serveraliveinterval = 45

forwardx11 = yes

[topsecret.server.com]

forwardx11 = no

修改配置文件

#! /usr/bin/env python3

# -*- coding:utf-8 -*-

# Note     : 用于测试configparser模块的功能

# 导入模块

import configparser

config = configparser.ConfigParser()

# 读取配置文件

config.read("example.ini")

config.add_section("new_section")

"""新增分组"""

config.set("DEFAULT", "compressionlevel", "110")

"""设置DEFAULT分组下compressionlevel的值为110"""

config.write(open('example.ini', "w"))

运行后,文件“example.ini”中的结果:

[DEFAULT]

compression = yes

compressionlevel = 110

serveraliveinterval = 45

forwardx11 = yes

[topsecret.server.com]

forwardx11 = no

[new_section]

以上是 Python常用模块之configparse 的全部内容, 来源链接: utcz.com/z/537442.html

回到顶部