27

这是我的示例脚本:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read('conf.ini')

print bool(config.get('main', 'some_boolean'))
print bool(config.get('main', 'some_other_boolean'))

这是conf.ini

[main]
some_boolean: yes
some_other_boolean: no

运行脚本时,它会打印True两次。为什么?应该是Falsesome_other_boolean设置为no

4

2 回答 2

46

使用getboolean()

print config.getboolean('main', 'some_boolean') 
print config.getboolean('main', 'some_other_boolean')

Python 手册

RawConfigParser.getboolean(section, option)

一种将指定部分中的选项强制为布尔值的便捷方法。请注意,该选项的可接受值为“1”、“yes”、“true”和“on”,这导致此方法返回 True,以及“0”、“no”、“false”和“off” ",这会导致它返回 False。以不区分大小写的方式检查这些字符串值。任何其他值都会导致它引发 ValueError。

构造bool()函数将空字符串转换为 False。非空字符串为 True。bool()对“假”、“否”等没有做任何特别的事情。

>>> bool('false')
True
>>> bool('no')
True
>>> bool('0')
True
>>> bool('')
False
于 2012-10-05T17:03:29.663 回答
2

它返回字符串“no”。bool("no") 为真

于 2012-10-05T17:03:03.400 回答