Python3 读写配置文件——configparser 模块详解_python3 configparser-CSDN博客
简介
configparser 是 Pyhton 标准库中用来解析配置文件的模块,并且内置方法和字典非常接近。
写一个测试用的配置文件,文件名test.ini:
```plain text
[logoninfo]
addr=zhangsan
passwd=lisi
popserver=emain
[logging]
level=2
path= "/root"
server="login"
[mysq]
host=127.0.0.1
port=3306
user=root
password=123456
“[ ]” 包含的为 section,section 下面为类似于 key-value 的配置内容。所以上面的`logoninfo`,`logging`等都是一个section
值得一提的是,configparser 默认支持 ‘=’ ‘:’ 两种分隔,下面这种也是合法了:
```python
[mysq]
host:127.0.0.1
port:3306
user:root
password:123456
读取文件
# coding=utf-8
import configparser
# 初始化实例
conf = configparser.ConfigParser()
print(type(conf)) # conf是类 <class 'configparser.ConfigParser'>
conf.read('test.ini')
# 获取配置文件中所有sections,sections是列表
sections = conf.sections()
print(sections)
# 打印出 ['logoninfo', 'logging', 'mysq']
# 获取指定 section 的 keys
option = conf.options(conf.sections()[0])
print(option)
# 打印出 ['addr', 'passwd', 'popserver']
# 获取指定 key 的 value
# 根据section和value获取key值,等价于
# value = conf.get(conf.sections()[0], conf.options(conf.sections()[0])[0])
value = conf.get('logoninfo', 'addr')
print(value)
# 打印出 zhangsan
# 获取指定 section 的 keys & values
item = conf.items('logoninfo')
print(item)
# 打印出 [('addr', 'zhangsan'), ('passwd', 'lisi'), ('popserver', 'emain')]
# 检查 section 是否存在
# 或者 print('logging' in conf.sections())
print('logging' in conf)
# 检查指定 section 中 key 是否存在
print("addr" in conf["logoninfo"])
# 检查指定 section 指定 key 的 value
# 等于 "zhangsan" == conf["logoninfo"]["addr"]
print("zhangsan" in conf["logoninfo"]["addr"])
生成新示例并保存为新文件
import configparser # 引入模块
config = configparser.ConfigParser() #实例化一个对象
config['logging'] = {
"level": '2',
"path": "/root",
"server": "login",
'User': 'Atlan'
}
config['mysq'] = {
'host': '127.0.0.1',
'port': '3306',
'user': 'root',
'password': '123456'
}
with open('new.ini', 'w') as configfile:
config.write(configfile)
上述代码可以生成如下文件:
```plain text
[logging]
level = 2
path = /root
server = login
user = Atlan
[mysq]
host = 127.0.0.1
port = 3306
user = root
password = 123456
# 修改配置文件
```python
import configparser
config = configparser.ConfigParser() # 实例化一个对象
config.read('config.ini') # 读文件
config.add_section('yuan') # 添加 section
config.remove_section('mysq.org') # 删除 section
config.remove_option('logoninfo', "popserver") # 删除一个配置项
config.set('logging', 'level', '3') # 修改执行 section 指定 key 的 value
config.set('yuan', 'k2', '22222') # 添加一个配置项
with open('config.ini', 'w') as f:
config.write(f)
[文章导入自 http://qzq-go.notion.site/3ece73dca2714c47b01cbc378f5bdb07 访问原文获取高清图片]