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

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

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

PhpPioneer发布于 2023/4/19更新于 2026/6/919 浏览
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(),文件本身不会被更新
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AIGC 自动化编程实战:Python、Java、JavaScript 与 VBA
  • Python 27 个常见问题解答与核心概念解析
  • Fooocus 部署实战:从本地环境搭建到云端快速启动
  • Python 程序打包:使用 Inno Setup Compiler 制作安装包
  • 通义万相 2.1 开源视频模型能力解析与部署考量
  • 动态规划:求乘积为正数的最长子数组长度
  • 无需修改系统配置加速 Git Clone 与子模块下载
  • KU2208-H33 海光服务器主板:国密算法与国产系统加固工控安全
  • Git 分支管理核心操作与策略
  • OpenClaw QQ 机器人接入实战指南
  • 计算机专业大学生三年成长与职业发展规划
  • Spring 方法异步执行配置与使用
  • Linux 网络编程:基于 C++ 实现 JSON 与 HTTP Web 服务器
  • 15 种高级 RAG 技术指南:从预检索到生成
  • 开源无人机开发平台:基于 ESP32 的从零构建与自主飞行实践
  • 转型 AI 产品经理需要掌握的硬知识:能力模型与概念梳理
  • 使用大语言模型从零构建知识图谱
  • Gitee 代码上传指南:Git 基础与实战操作
  • AR/VR 教育应用开发实战指南
  • 基于 Docker 部署 PDFMathTranslate 实现数学文档翻译

相关免费在线工具

  • 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