[python] 스크립트에 대한 부울 인수

Python에서는 int 및 str 인수를 스크립트에 추가하는 방법을 이해합니다.

parser=argparse.ArgumentParser(description="""Mydescription""")
parser.add_argument('-l', type=str, default='info', help='String argument')
parser.add_argument('-dt', type=int, default ='', help='int argument')

부울은 무엇입니까?

기본적으로 스크립트에 특정 작업을 수행할지 여부를 알려주는 플래그를 스크립트에 전달하고 싶습니다.



답변

action와 함께 사용할 수 있습니다 store_true| store_false, 또는 int를 사용하고 암시 적 캐스팅이 부울 값을 확인하도록 할 수 있습니다.

를 사용하면 and 인수를 action전달하지 않고 true로 설정하려면 간단히 포함합니다.--foo=true--foo=false

python myProgram.py --foo

사실 나는 당신이 원하는 것은

parser.add_argument('-b', action='store_true', default=False)


답변

parser.add_argument('--foo', action='store_true')


답변

import distutils.util
ARGP.add_argument('--on', '-o', type=distutils.util.strtobool, default='true')

그것을 부르는 예 :

$ ./myscript                # argp.on = 1
$ ./myscript --on=false     # argp.on = 0
$ ./myscript --on=False     # argp.on = 0
$ ./myscript --on=0         # argp.on = 0
$ ./myscript --on=1         # argp.on = 1
$ ./myscript -o0            # argp.on = 0
$ ./myscript -o false       # argp.on == 0

“예”및 “아니오”와 같은 값을 지원하려면 다른 정확한 문자열 일치를 처리하기 위해 인수를 로컬 래퍼 함수에도 바인딩 할 수 있습니다. 또한 입력을 yaml로 해석하여 예 / 아니오도 처리 할 수 ​​있습니다. 그래도 난 한 동안이 일을하지 않은, 그리고 내가 같은과 상호 배타적 인수로 빨아했습니다 최근에 생각하는 dest가치, 하나 --no-optionaction='store_false', 하나 --optionaction='store_true'


답변