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