【Python】configparser配置文件解析器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39591494/article/details/85227962

python之configparser配置文件解析器


此模块提供了 ConfigParser类,该类实现了一种基本配置语言,该语言提供了类似于Microsoft Windows INI文件中的结构。您可以使用它来编写可以由终端用户轻松定制的Python程序。

注解:
此库会对 not 解释或写入在Windows注册表扩展版本的INI语法中使用的值类型前缀。

一、快速开始(configparser)

让我们来看一个非常基本的配置文件,如下所示:

[DEFAULT]
Server = https://blog.csdn.net/qq_39591494
Name = yankerp
Compression = yes
CompressionLevel = 9

[zhangsan]
Server = https://www.zhangsan.com
Name = zhangsan
Password = pwd123.com
Compression = yes
CompressionLevel = 9

[yankai]
Server = https://www.ywyankai.cn
Name = yankai
Password = pwd123.com
Compression = yes
CompressionLevel = 9

INI文件的结构描述为 在下一节。本质上,该文件由节组成,每个节包含带有值的键。 configparser 类可以读写此类文件。让我们从编写上面的配置文件开始。

1.1、在使用configparser之前先导入configparser模块


import configparser # 首先导入configparser模块
config = configparser.ConfigParser() # 将configparser中的ConfigParser方法实例化为一个对象:config 
# 在这里的config可以任意起

1.2、生成配置文件


在以上操作中导入了configparser模块,将configparser中的ConfigParser方法实例化了一个对象.co nfig,接下来我们就可以通过实例化后的config对象对配置文件进行操作并生成配置文件

本质上,该文件由节组成,每个节包含带有值的键。 configparser 类可以读写此类文件。

config["DEFAULT"] = {
    "Server" : "https://blog.csdn.net/qq_39591494",
    "Name" : "yankerp",
    "Compression" : "yes",
    "CompressionLevel" : 9 
}
config["zhangsan"] = {
    "Server" : "https://www.zhangsan.com",
    "Name" : "zhangsan",
    "password" : "pwd123.com",
    "Compression" : "yes",
    "CompressionLevel" : 9
}
config["yankai"] = {}
config["yankai"]["Server"] = "https://www.ywyankai.cn"
config["yankai"]["name"] = "yankai"
config["yankai"]["password"] = "pwd123.com"
config["yankai"]["Compression"] = "yes"
config["yankai"]["CompressionLevel"] = "9"

使用config.write写入配置文件并保存

with open("config.ini","w") as f:
    config.write(f)

在这里插入图片描述

查看配置文件中有哪些sections

config.sections()
>>> ['zhangsan', 'yankai']

例如:需要查看配置文件中yankai_sections中的server值

config["yankai"]["server"]
>>> ''https://www.ywyankai.cn''

使用for循环将一个配置文件中的sections全部输出

for i in config.sections():
    print(i)
>zhangsan
>yankai

若输出sections yankai的值如下:

for i in config["yankai"]:
    print(i)
>server
name
password
compression
compressionlevel

关于DEFAULT官方原文解释:As we can see above, the API is pretty straightforward. The only bit of magic involves the DEFAULT section which provides default values for all other sections [1]. Note also that keys in sections are case-insensitive and stored in lowercase [1].
API是相当简单的。魔法的唯一一点是 DEFAULT 部分,它为所有其他部分 [1]提供默认值。还要注意,节中的键不区分大小写,并存储在小写 [1] 中

例如:sections_DEFAULT中添加一行默认k,v 段
在这里插入图片描述

使用yankai_sections获取your_name值

config["yankai"]["your_name"]
>'lisi'
config["zhangsan"]["your_name"]
>'lisi'
for i in config["zhangsan"]:
    print(i)
>server
name
password
compression
compressionlevel
your_name
for i in config["yankai"]:
    print(i)
>server
name
password
compression
compressionlevel
your_name

使用.add_section() && .set方法添加section

config.add_section("wangwu")
config.set("wangwu", "name", "wangwu")
with open("config.ini","w") as f:
    config.write(f)

在这里插入图片描述

使用.get方法获取sections中的值

config.read("config.ini") # 读取配置文件
yankai = config["yankai"]
for i in yankai:
    print(yankai.get(i))
>https://www.ywyankai.cn
yankai
pwd123.com
yes
9
lisi

使用


#!/usr/bin/env python
# -*- coding:utf-8 -*-

import configparser
config = configparser.ConfigParser()

data = {
    "DEFAULT" : {
        "file_path" : "F:\python-office",
        "log_file" : "F:\python-office\log",
        "db_name" : "result.ini"
    },
    "yankai" : {
        "name" : "yankai",
        "password" : "pwd123.com",
        "url" : "https://www.ywyankai.cn" 
    },
}


def write_config(data:dict):
    for k, v in data.items():
        config[k] = v
    with open("result.ini", "w") as f:
        config.write(f)

if __name__ == "__main__":
    write_config(data)

在这里插入图片描述

ConfigParser对象


更多configparser对象可以参考官方文档:
https://docs.python.org/3.6/library/configparser.html?highlight=configparser#module-configparser

猜你喜欢

转载自blog.csdn.net/qq_39591494/article/details/85227962