QZQ的小世界!

  • 首页
你好!
这里是QZQ的博客站!
  1. 首页
  2. 未分类
  3. 正文

configparser-读写配置文件

2025年4月4日 154点热度 0人点赞 0条评论

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 访问原文获取高清图片]

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: IT技术 Python Python库介绍 Python标准库
最后更新:2025年4月3日

QZQ

一只涉猎广泛的技术爱好者,绝赞养猫中~

点赞
< 上一篇
下一篇 >

归档

  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月

分类

  • 技术
  • 未分类

COPYRIGHT © 2024 QZQ的小世界!. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang