You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用configparser写入文件时如何定义config.ini条目的顺序?

解决configparser生成config.ini条目顺序随机的问题

嘿,这个问题我之前也踩过坑!默认情况下configparser用的是普通字典,写入文件时条目顺序会被打乱,确实很影响配置文件的可读性。要保持条目顺序,其实有几个简单靠谱的办法:

方法一:使用OrderedDict(兼容Python 3.2+)

在初始化ConfigParser的时候,指定dict_type为collections.OrderedDict,这样就能严格按照你添加条目的顺序生成配置文件:

import configparser
from collections import OrderedDict

# 初始化带有序字典的ConfigParser
config = configparser.ConfigParser(dict_type=OrderedDict)

# 按你想要的顺序添加配置项
config['DEFAULT'] = {
    'ServerAliveInterval': '45',
    'Compression': 'yes',
    'CompressionLevel': '9'
}
config['bitbucket.org'] = {}
config['bitbucket.org']['User'] = 'hg'
config['topsecret.server.com'] = {}
topsecret = config['topsecret.server.com']
topsecret['Port'] = '50022'
topsecret['ForwardX11'] = 'no'

# 写入文件,顺序完全和添加时一致
with open('config.ini', 'w') as configfile:
    config.write(configfile)

方法二:利用Python 3.7+的有序内置dict

从Python 3.7开始,内置的dict已经默认保持插入顺序了,如果你不需要兼容3.7以下的版本,直接初始化默认的ConfigParser就行,生成的配置文件也会保留条目顺序:

import configparser

# 3.7+版本直接用默认初始化即可
config = configparser.ConfigParser()

# 后续添加和写入代码和上面一样

额外提示

如果是读取已有的配置文件、修改后再写入,想要保留原文件的条目顺序,同样需要在初始化ConfigParser时指定dict_type=OrderedDict(或3.7+用默认dict),这样读取时就会保留原文件的顺序,修改后写入也不会乱序。

亲测这两种方法都能完美解决条目顺序随机的问题,生成的config.ini可读性拉满,后续修改配置也能轻松找到对应的选项~

内容的提问来源于stack exchange,提问作者Honeybear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:03:41