gpt4 book ai didi

python - 写入小写的 'default' 部分 ConfigParser

转载 作者:行者123 更新时间:2023-11-28 22:47:57 25 4
gpt4 key购买 nike

我正在使用一个 ini 文件,其中默认部分名为“default”而不是“DEFAULT”。 Pythons ConfigParser 可以毫无问题地处理这些部分。但是,无论出于何种原因,它们都不允许您添加“默认”部分或写入它。在代码中,他们硬编码了您不能创建“DEFAULT”的任何不区分大小写版本的部分。

所以,如果我不能添加“默认”部分,我该如何写入呢?规范说您写入“DEFAULT”,因为该部分始终存在。但是,如何写入“默认”?

我想与文件的写入方式保持一致,所以我希望默认部分以小写形式书写,而不是全部大写。

如果该文件尚不存在,我想添加 [default] 部分。写入“默认”部分会给我一个 ValueError: Invalid section name: default

(注意:当我使用已经正确格式化的文件时,写入默认值工作正常)

此外,我愿意听取有关我可以使用的其他配置库的建议。但它们不能是第 3 方(我不需要 pip 安装它们)

最佳答案

这是一个解决方法(临时设置 ConfigParser.DEFAULTSECT):

import ConfigParser
import sys

config = ConfigParser.ConfigParser()
config.set(ConfigParser.DEFAULTSECT, 'name', 'value')

ORIG_DEFAULTSECT = ConfigParser.DEFAULTSECT # <---
ConfigParser.DEFAULTSECT = 'default'
try:
config.write(sys.stdout)
finally:
ConfigParser.DEFAULTSECT = ORIG_DEFAULTSECT # <---

备选方案:将具有所需部分名称的 StringIO 传递给 readfp

import ConfigParser
import sys
from StringIO import StringIO

config = ConfigParser.ConfigParser()
config.readfp(StringIO('[default]')) # <----
config.set('default', 'name', 'value')
config.write(sys.stdout)

关于python - 写入小写的 'default' 部分 ConfigParser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25628651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com