首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 读取配置 INI 文件

Python 读取配置 INI 文件

作者头像
小田测测看
发布2026-06-17 17:53:17
发布2026-06-17 17:53:17
1200
举报

INI 文件是一种常见的配置文件格式,结构清晰

结构

INI 文件由「节(section)」、「键值对(key=value)」和「注释」组成:

代码语言:javascript
复制
# 这是注释(以 # 或 ; 开头)
; 这也是注释

[DEFAULT]# 特殊节:所有节默认继承此节的键值对
encoding = utf-8
timeout = 30

[database]# 节名(区分大小写)
host = localhost
port = 3306
user = root
password = 123456
db_name = test_db

[log]
level = INFO
path = /var/log/app.log

使用 configparser 读取 INI 文件

1. 常用方法

(1)获取所有节名
代码语言:javascript
复制
import configparser

config = configparser.ConfigParser()

config.read("config.ini", encoding="utf-8")  # 支持多个文件,编码可选
sections = config.sections()
print(sections)  # 输出:['database', 'log'](不包含 DEFAULT 节)
(2)检查节 / 键是否存在
代码语言:javascript
复制
# 检查节是否存在
has_db = config.has_section("database")
print(has_db)  # 输出:True

# 检查键是否存在(需指定节)
has_host = config.has_option("database", "host")
print(has_host)  # 输出:True
(3)读取指定键的值
代码语言:javascript
复制
# 方法 1:section.get(key)
host = config["database"].get("host")
print(host)  # 输出:localhost

# 方法 2:config.get(section, key)
port = config.get("database", "port")
print(port)  # 输出:3306(默认返回字符串)
(4)读取特定类型的值
代码语言:javascript
复制
port = config.getint("database", "port")
print(port, type(port)) 
# 输出:3306 <class 'int'>

# 布尔值(支持 yes/no, on/off, true/false, 1/0)
is_debug = config.getboolean("log", "debug", fallback=False)
# fallback 为默认值

# 浮点数
timeout = config.getfloat("DEFAULT", "timeout")
print(timeout, type(timeout)) 
# 输出:30.0 <class 'float'>
(5)获取节内所有键值对
代码语言:javascript
复制
# 获取指定节的所有键值对(返回字典)
db_config = dict(config["database"])
print(db_config)
# 输出:{'host': 'localhost', 'port': '3306', 'user': 'root', ...}

# 获取所有键名
db_keys = config["database"].keys()

写入 / 修改 INI 文件

代码语言:javascript
复制
import configparser

config = configparser.ConfigParser()
config.read("config.ini", encoding="utf-8")

# 1. 添加新节
ifnot config.has_section("app"):
    config.add_section("app")

# 2. 设置键值对
config.set("app", "name", "my_app")  # 字符串值
config.set("app", "version", "1.0.0")

# 3. 修改已有值
config.set("database", "port", "3307")  # 注意:值需为字符串

# 4. 保存到文件
withopen("config.ini", "w", encoding="utf-8") as f:
    config.write(f)  # 写入时会保留原有注释吗?不会,会重建文件

⚠️ 注意:config.write() 会覆盖原文件,且不会保留注释 不注意会有坑

总结

  • • 主要操作:read() 加载文件 → get()/getint() 等读取值 → set() 修改 → write() 保存。
  • • 注意事项:默认不保留注释、键名大小写不敏感(可配置)、特殊字符需处理。

#Python #配置文件

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程拾光 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • INI 文件是一种常见的配置文件格式,结构清晰
    • 结构
    • 使用 configparser 读取 INI 文件
    • 1. 常用方法
    • 写入 / 修改 INI 文件
    • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档