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

Python ConfigParser空值行为与文档不符:空选项返回空字符串而非None

关于configparser中allow_no_value参数的行为疑问

适用版本:Python 3.6 ~ 3.10

官方文档说明:当allow_no_value设为True(默认值为False)时,允许无值的选项;这类选项的值为None,序列化时不带末尾分隔符。

实际运行与文档描述的差异

配置文件内容

[Conf Section]
sftp server = 1.2.3.4
sftp port = 

测试代码

import configparser

cf = configparser.ConfigParser(allow_no_value=True)
cf.read('配置文件路径')
sftp_server = cf.get('Conf Section', 'sftp server')
sftp_port = cf.get('Conf Section', 'sftp port')

运行结果

>>> sftp_server 
'1.2.3.4'

>>> sftp_port 
''

>>> type(sftp_port) 
<class 'str'>

可见sftp_port的值是空字符串,并非文档描述的NoneType。

不存在的选项的行为(符合文档描述)

测试代码

import configparser

cf = configparser.ConfigParser(allow_no_value=True)
cf.read('配置文件路径')
sftp_user = cf.get('Conf Section', 'sftp user', fallback=None)

运行结果

>>> sftp_user
>>>

>>> type(sftp_user)
<class 'NoneType'>

需要注意的是,不存在的选项≠空选项,二者的行为存在明显差异。

请问这是configparser的问题,还是我对文档内容的理解有误?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:10:11