예를 들어 사용자가 다음과 같은 인수를 전달한다고 가정합니다.
python3 myscript.py -a
또한 그들이 통과 할 수 있기를 바랍니다.
python3 myscript.py -b
그러나 나는 그들이 다음과 같이 동시에 두 가지를 모두 통과 할 수 있기를 원하지 않습니다.
python3 myscript.py -a -b
어떻게하면 되나요? 나는 아직 argparse에 너무 익숙하지 않으며 문서는 이해하기가 다소 어렵습니다.
고마워요 :)
상호 배타적 인 인수 그룹 을 원합니다 . 다음은 최소한의 예입니다.
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument('-a', help='Do A', action='store_true')
group.add_argument('-b', help='Do B', action='store_true')
args = parser.parse_args()
if args.a:
print('A!')
if args.b:
print('B!')
테스트:
$ python myscript.py -h
usage: myscript.py [-h] [-a | -b]
optional arguments:
-h, --help show this help message and exit
-a Do A
-b Do B
$ python myscript.py -a
A!
$ python myscript.py -b
B!
$ python myscript.py -a -b
usage: myscript.py [-h] [-a | -b]
myscript.py: error: argument -b: not allowed with argument -a
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다