我想知道如何给一个参数,当一个标志被给出时,可选的时候没有给出该标志?Python Argparse:当且仅当给出一个标志时,如何设置参数?
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--convert', action = 'store_true')
parser.add_argument('-l', '--lookup', action = 'store_true')
parser.add_argument('name', type = str)
args = parser.parse_args()
if args.name:
print(args.name)
if args.convert:
print ("convert now!")
例如,在上面的代码,我想name
被需要,只有当-c
中给出。当运行该程序只与-l
,则有一个错误:
$ python3 test.py -l
usage: test.py [-h] [-c] [-l] name
test.py: error: the following arguments are required: name
我曾尝试使用参数组的参数分为两组1. -c
和name
; 2. -l
,但它并没有真正的工作。
任何建议表示赞赏!
感谢您的详细解释,它帮助了很多!我可以去我自己的学习subparsers :) –