.ini 文件是一种 非常简单、历史悠久的配置文件格式,最早在 Windows 系统中广泛使用。它用"节(section)+ 键值对(key-value)"来组织配置。
如今在 Python、C/C++、许多软件的配置中依然非常常见。
下面是最清晰的解释。
✅ .ini 文件是什么?
一种键值对为基础的配置格式,由以下部分组成:
- 节(section)
- 键值对(key=value)
- 注释(; 或 #)
示例:
ini
; 这是注释
[database]
host = localhost
port = 5432
[auth]
username = admin
password = 123456
🧩 .ini 的结构
1. Section(节)
用方括号定义:
ini
[database]
每个节下面可以放多项配置。
2. 键值对(key-value pairs)
ini
host = localhost
port = 5432
- key 左边通常只能是字符串
- value 是字符串(不严格类型化)
3. 注释
两种写法:
ini
; 这是注释
# 这也是注释
🆚 .ini 的特点与缺点
⭐ 优点
- 超级简单
- 易于阅读
- 解析器广泛支持(Windows/Python/C++ 等)
- 适合基本配置需求
❗ 缺点
- 没有数据类型 :所有 value 都被当作字符串
(不像 TOML 有真正的 int/bool/datetime) - 不支持嵌套结构
- 不支持数组
- 标准不统一(不同语言解析器略有差异)
- 不适合复杂配置
例如 TOML 能写:
toml
items = [1, 2, 3]
INI 做不到,只能写:
ini
items = 1,2,3
解析器需要自己拆。
🧰 Python 中如何读取 .ini
Python 自带的 configparser 模块支持:
python
import configparser
config = configparser.ConfigParser()
config.read("config.ini")
print(config["database"]["host"])
🔍 .ini、.toml、.yaml 的对比
| 格式 | 难度 | 功能 | 类型支持 | 推荐情况 |
|---|---|---|---|---|
| INI | 最简单 | 很基础 | 全部字符串 | 小项目、简单配置 |
| TOML | 简单 | 适中 | ✔ 强类型 | Python/Rust 推荐 |
| YAML | 中等 | 强大 | ✔ 强类型 | 复杂配置(K8s) |
| JSON | 中等 | 基本 | ✔ 强类型 | API 数据结构 |
Python 选择 TOML 作为新标准就是因为:
- 比 INI 强得多
- 比 YAML 安全可靠
- 比 JSON 更好写配置