2012-10-05 4 views
6

이 내 예제 스크립트입니다 :부울 항상 True를 반환

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를 인쇄합니다. 왜? some_other_booleanno으로 설정되어 있기 때문에 False이어야합니다.

답변

18

사용 getboolean() True입니다

RawConfigParser.getboolean(section, option) 

부울 값으로 지정된 섹션의 옵션을 강제 변환하는 편리한 방법 . 옵션에 대해 허용되는 값은 "1", "예", "true"및 "on"이며이 메서드는 True를 반환하고 "0", "no", "false"및 "off" "를 반환하여 False를 반환합니다. 이 문자열 값은 대소 문자를 구분하지 않고 검사합니다. 다른 값을 지정하면 ValueError가 발생합니다.

bool() 생성자는 빈 문자열을 False로 변환합니다. 비어 있지 않은 문자열은 참입니다. bool() 등 내가 예를 들어 문자열의 거의 같은 설정했다

>>> bool('false') 
True 
>>> bool('no') 
True 
>>> bool('0') 
True 
>>> bool('') 
False 
+0

바하 "거짓", "아니오"에 대한 특별한 일을하지 않습니다 ... –

1

문자열 "no"를 반환합니다. Python manual에서

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

: 부울 ("아니오")

관련 문제