原因在于读取层次和布尔转换层次不是一回事。按 Python 3.14 标准库中 ConfigParser 的行为,INI 里的选项值先以字符串保存;从配置取出的“False”仍是非空字符串,交给 bool 后仍为 True。所以代码若先 get 再 bool,看到配置写 false 却得到真,通常不是“false 被识别成真”,而是根本没有走标准布尔转换。应使用 getboolean,它按不区分大小写的 1、yes、true、on 返回 True,按 0、no、false、off 返回 False;其他值会抛出 ValueError。自定义转换器要单独核对,不能拿标准 getboolean 的规则替它下结论,也不要为了排查先改客户配置。

适用:适用于 Python 3.14 标准库 ConfigParser 的台式电脑软件侧排查,尤其是遵义市汇川区现场已有代码、INI 配置和去敏日志的只读核对。核对范围限于已有代码、配置和去敏日志,不运行客户程序,不修改仓库、配置和业务标识,也不重发业务请求;现场版本与补丁级别另核。
观察:先看调用点,取该 option 时用的是 get 后接 bool,还是直接 getboolean;若前者,记录返回对象类型,结果条件通常是字符串而非布尔值。再看原值与大小写,在不暴露业务内容的前提下核对脱敏后的值,若为 false 且走 getboolean,应得到 False;若为不认识的写法,应预期 ValueError。最后看转换器,若代码注册了自定义转换器或子类改写,按其实际转换规则单独核对,结果条件以该转换器接受值和异常为准,不套用标准列表。
风险:本题的风险是把字符串真值判断误当成配置布尔值,导致分支与配置字面相反;把不认识的写法交给 getboolean 又可能抛出 ValueError,若异常未处理会中断配置读取。自定义转换器若被误当作标准规则,也会掩盖真实取值逻辑。排查时直接改客户配置,还会改变现场条件,影响后续只读核对。
下一步:建议先收集最小去敏材料,包括 Python 主次版本与运行环境说明、调用 ConfigParser 的相关代码片段且去掉业务参数和凭据、该 option 的脱敏原值及大小写、使用的是 get、getboolean 还是自定义转换器、异常摘要。随后只做已有代码和配置的只读核对,确认应使用标准 getboolean 还是按自定义转换器核对,不在客户环境试改配置。若需咨询台式电脑软件侧的排查范围与安排,可拨 400-877-9605;电脑快修网是信息展示与第三方维修对接平台,该号码只作咨询,实际范围和安排需确认。