当我argparse
混合位置参数、可选参数和argparse.REMAINDER
parser = argparse.ArgumentParser()
parser.add_argument('verbose', action="store")
parser.add_argument('--config', '-c', nargs="?", dest="config_file")
parser.add_argument('--dry-run', action="store_true", dest="dryrun")
parser.add_argument('args', nargs=argparse.REMAINDER, action="store")
样品运行:
python test.py verose="5" --config config.xml graph --dry-run
预期输出:
verbose = "5"
config_file = config.xml
dryrun = True
args = ['graph']
实际输出:
verbose = "5"
config_file = config.xml
dryrun = False
args = ['graph', '--dry-run']
我的要求是我有verbose
, -c
,--config
和--dry-run
as 命令行选项,并且命令行提供的任何其他选项都应该存储在列表中,args
而不管命令行中参数的出现顺序如何。请帮助我做错了什么。还有其他更好的python命令行解析器吗?