使用argparse的Python中的条件命令行参数

我想要一个程序,采取–action =标志,其中有效的选择是转储和上传,上传是默认的。如果选择了(而且只有)转储,我希望还有一个–dump-format =选项。有没有办法用argparse来表达这个,或者我需要接受所有的参数,并自己做逻辑。
最佳答案
你可以使用parser.error

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--action', choices=['upload', 'dump'], default='dump')
parser.add_argument('--dump-format')
args = parser.parse_args()
if args.action != 'dump' and args.dump_format:
    parser.error('--dump-format can only be set when --action=dump.')

转载注明原文:使用argparse的Python中的条件命令行参数 - 代码日志