gpt4 book ai didi

python - 如何使 ConfigParser 返回默认值而不是引发 NoOptionError?

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

我有一个配置文件,其中定义了一些选项。有时,如果没有找到请求的选项,我想忽略错误并返回 None

设置.cfg:

[Set]
ip=some_ip
verify=yes #if verify does not exist here --> verify=None

测试.py:

import sys
import ConfigParser

file="setting.cfg"

class ReadFile:
def read_cfg_file(self):
configParser = ConfigParser.RawConfigParser(allow_no_value=True)
if os.path.isfile(file):
configParser.read(file)
else:
sys.exit(1)
try:
verify = configParser.get('Set', 'verify')
except ConfigParser.NoOptionError:
pass

return verify,and,lots,of,other,values

如果我这样处理,我无法返回值,因为如果未找到 'verify' 选项,它就会通过。

如果找不到选项,有什么方法可以忽略错误,而是返回 None

例如,像这样:

verify = configParser.get('Set', 'verify')
if not verify:
verify=False

最佳答案

Python 3 的configparser 模块是much-improved并提供了一个 get(option, default) 方法。

Python 2 的 ConfigParser 允许使用 DEFAULT 部分 ( supplied at construction time ),尽管在那种情况下您必须提前知道每个选项的默认值。

如果您使用的是 Python 2 并且需要在调用站点提供默认值,那么根据 Rob 的回答进行子类化似乎是可行的方法。

关于python - 如何使 ConfigParser 返回默认值而不是引发 NoOptionError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35806740/

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