跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 进阶:INI 配置文件读写详解

INI 文件常用于脚本工具的配置管理,其 Key 不区分大小写。通过 Python 的 configparser 模块,可以轻松读取 sections、获取不同数据类型(如 boolean、int)的值。修改配置时使用 set 方法仅影响内存对象,需配合 write 方法才能持久化保存。掌握这些基础操作能有效提升配置管理的效率。

PhpPioneer发布于 2023/4/19更新于 2026/9/862 浏览
Python 进阶:INI 配置文件读写详解

INI 配置文件基础

INI 文件在脚本和工具程序中非常常见,结构清晰,适合存储简单的键值对配置。需要注意的是,ConfigParser 默认情况下 Key 是不区分大小写的。

示例配置文件

假设我们有一个 test.ini 文件,内容如下:

[installation]
library=%(prefix)s/lib
include=%(prefix)s/include
bin=%(prefix)s/bin
prefix=/usr/local

[debug]
log_errors=true
show_warnings=False

[server]
port=8080
nworkers=32
pid-file=/tmp/spam.pid
root=/www/root
signature=Brought to you by the Python Cookbook

读取与解析

使用 configparser 模块可以方便地处理这类文件。下面是一个完整的读取示例:

from configparser import ConfigParser

cfg = ConfigParser()
cfg.read('test.ini')

# 获取所有分区名称
print(f'sections is: {cfg.sections()}')

# 获取字符串值
print(f'library is: {cfg.get("installation", "library")}')

# 自动转换类型
print(f'log errors: {cfg.getboolean("debug", "log_errors")}')
print(f'port is: {cfg.getint("server", )}')
()
()
"port"
print
f'nworkers is: {cfg.getint("server", "nworkers")}'
print
f'signature is: {cfg.get("server", "signature")}'

运行结果会显示各个分区的名称以及对应的值。这里特别留意一下类型转换方法,比如 getboolean 和 getint,它们能直接返回布尔或整数,省去了手动转换的麻烦。ConfigParser 还会自动处理变量替换,所以 %(prefix)s 会被展开为实际路径。

修改配置

修改配置相对简单,但要注意内存与磁盘的区别。set 方法只修改内存中的对象,不会立即写入文件。

# 修改内存中的值
cfg.set('server', 'port', '9000')
cfg.set('debug', 'log_errors', 'False')

print(f'new debug is: {cfg.getboolean("debug", "log_errors")}')
print(f'After change, port is: {cfg.getint("server", "port")}')

# 注意:如果不调用 cfg.write(),文件本身不会被更新

另外,INI 文件的 Key 不区分大小写这一点在实际使用中很有用。例如:

print(cfg.get('installation', 'PREFIX'))
print(cfg.get('installation', 'prefix'))

无论大写还是小写,都能正确获取到 /usr/local。如果需要在实际项目中持久化修改,记得在修改后打开文件并调用 cfg.write() 将数据写回。

目录

  1. INI 配置文件基础
  2. 示例配置文件
  3. 读取与解析
  4. 获取所有分区名称
  5. 获取字符串值
  6. 自动转换类型
  7. 修改配置
  8. 修改内存中的值
  9. 注意:如果不调用 cfg.write(),文件本身不会被更新

更多推荐文章

查看全部
  • HDFS 编程实践:Shell 命令、Web 界面与 Java API 详解
  • RabbitMQ 入门:架构解析、环境搭建与 Java 实战
  • Rust 复合类型高级用法——结构体、枚举与模式匹配进阶
  • TRAE vs Qoder vs Cursor vs GitHub Copilot:谁才是真正的“AI 工程师”?
  • Java 入门教程
  • SenseVoice-Small ONNX 量化版快速部署及 Gradio 使用指南
  • OpenCV 环境变量配置与性能调优指南
  • 2026 年 3 月全球大模型全景:国产登顶、百万上下文与智能体爆发
  • 扣子(Coze)Skills+OpenClaw 实战:零基础构建 AI 智能体
  • Spring Cloud Alibaba 微服务架构实战指南
  • 深入解析 C++ 轻量级 WebServer 实现
  • 让 Llama-Factory 真正跑在 Flash Attention 上:环境、配置与性能一探
  • 初识Java:语言特性与基础语法入门
  • 使用 Ollama、Open WebUI 和 Docker 本地部署可视化 AI 大语言模型
  • Flutter 组件 sse_stream 在鸿蒙系统的适配与高并发背压处理方案
  • 自然语言处理在客户服务领域的应用与实战
  • Google AI Studio 使用指南:界面与参数配置详解
  • LeetCode 124 二叉树中的最大路径和解题详解
  • Python 网络爬虫基础与通用模板实现
  • 执行式 AI 核心:API 调用与网络请求基础

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online