python操作配置文件ini

在Python中,操作 .ini配置文件常见且有代表性的三种方法​ 如下,从"标准库自带"到"第三方增强"依次介绍,并附可运行示例。


方法一:configparser(标准库,最常用)

特点

Python 内置,无需安装第三方库

专门用于处理类似 Windows INI 格式的配置文件

支持节(section)、键(key)、值(value)

示例 config.ini

读取配置

写入 / 修改配置

复制代码
config.set("database", "port", "3307")

with open("config.ini", "w", encoding="utf-8") as f:
    config.write(f)

适用场景:传统 INI 文件、中小型项目、配置简单清晰


方法二:configobj(第三方库,功能更强)

特点

支持嵌套结构(列表、段落)

自动类型推断(不用手动 getint

校验(schema)能力强

configparser 更"人性化"

安装

复制代码
pip install configobj

示例

复制代码
from configobj import ConfigObj

cfg = ConfigObj("config.ini")

db_host = cfg["database"]["host"]
db_port = int(cfg["database"]["port"])  # 也可配合验证器自动转

# 修改
cfg["redis"]["port"] = 6380
cfg.write()

适用场景

配置较复杂

需要类型自动转换

希望代码更简洁


方法三:手动读写 + ast.literal_eval(轻量 / 灵活)

特点

不依赖 INI 解析库适合

"类 INI"但非标准格式

可把值当成 Python 字面量解析(list / dict / int / bool)

示例 config.ini

复制代码
[server]
ports = [80, 443]
debug = True

读取

复制代码
import configparser
import ast

config = configparser.ConfigParser()
config.read("config.ini")

ports = ast.literal_eval(config.get("server", "ports"))
debug = ast.literal_eval(config.get("server", "debug"))

print(ports, debug)

适用场景:配置中包含列表、布尔值、字典

不想引入新库但又想支持复杂类型

注意:ast.literal_evaleval 安全,但仍需确保配置来源

相关推荐
2601_962297253 分钟前
python自带缓存lru_cache用法及扩展的使用_python
python·缓存·装饰器·lru_cache·my_cache
招财小梗9 分钟前
沈阳AI企业咨询可定制数字化方案吗?
大数据·人工智能·python
磐链科技11 分钟前
区块链开发入门实战:用 Hardhat 与 Ethers.js 搭建你的第一个 DApp
开发语言·javascript·区块链
csdn2015_15 分钟前
java springboot项目,接收到的参数多个逗号
java·开发语言·spring boot
leihefeng24 分钟前
邮件文本分类:CountVectorizer / TF-IDF + 朴素贝叶斯
python·分类·数据挖掘·tf-idf·sklearn
码艺-Alimjan25 分钟前
维吾尔语数字转文本
java·javascript·python·算法·go
可乐鸡翅yeah_25 分钟前
hls.js 多实例并发踩坑,多视频页面播放器内存与冲突问题解决
开发语言·前端·javascript·音视频·hls·m3u8·m3u8在线播放
俊昭喜喜里27 分钟前
c#中的构造函数
开发语言·数据库·c#
hahaha601638 分钟前
HLS高层次综合设计--axi之burst纠偏
开发语言·算法·fpga开发·c#
天空属于哈夫克341 分钟前
企业微信 API 自动发送消息:从流程到实战
python·自动化·企业微信