Python3 및 argparse 모듈을 사용하여 다른 인수가 전달 된 경우 인수를 허용하지 않을 수 있습니까?

에이버리

예를 들어 사용자가 다음과 같은 인수를 전달한다고 가정합니다.

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관