제목은 내가하고 싶은 것을 요약합니다.파이썬에서 argparse를 사용하면 양의 정수만 허용
여기에 내가 가진 내용이 있습니다. 프로그램이 비항적인 정수에 불어 나지 않는 동안, 사용자에게 비항 성 정수가 기본적으로 말도 안됨을 알리 길 원합니다.
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-g", "--games", type=int, default=162,
help="The number of games to simulate")
args = parser.parse_args()
그리고 출력 : 음과
python simulate_many.py -g 20
Setting up...
Playing games...
....................
출력 : 이제
python simulate_many.py -g -2
Setting up...
Playing games...
, 분명히 if args.games
가 부의 결정하는 경우 난 그냥를 추가 할 수 있습니다,하지만 난 경우 궁금해서 자동 사용 인쇄 기능을 활용하기 위해 레벨을 argparse
레벨로 트랩하는 방법이있었습니다. 지금은이 일을 해요 들어
python simulate_many.py -g -2
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid positive int value: '-2'
, 그리고 내가 행복한 것 같아 :
python simulate_many.py -g a
usage: simulate_many.py [-h] [-g GAMES] [-d] [-l LEAGUE]
simulate_many.py: error: argument -g/--games: invalid int value: 'a'
과 같이 :
이상적으로는,이 비슷한을 인쇄 할
if args.games <= 0:
parser.print_help()
print "-g/--games: must be positive."
sys.exit(1)
함수는 여러 값을 가질 수 있습니까? 어떻게 작동합니까? – Tom
'int' 로의 변환이 실패하면 여전히 읽을 수있는 출력이있을 것입니까? 아니면 수동으로 변환을 "시도"해야합니까? – NOhs
@MrZ'error : argument foo : invalid check_positive value : 'foo =''과 같은 것을 쓸 것입니다. 더 나은 에러 메시지로 예외를 다시 일으키는'try :'...'except ValueError :'를 단순히 추가하면됩니다. –
Yuushi