【发布时间】:2017-01-26 01:55:39
【问题描述】:
我的程序有两个功能。一个不带任何参数运行,另一个可以有可选参数。各组不能互相干扰。
import argparse
parser = argparse.ArgumentParser()
root_group = parser.add_mutually_exclusive_group()
group_export = root_group.add_argument_group()
group_export.add_argument('--export', action='store_true', help='Exports data from database')
group_export.add_argument('-l', action='append', help='Reduce output with league name')
group_export.add_argument('-d', action='append', help='Reduce output with date range')
group_run = root_group.add_argument_group()
group_run.add_argument('--run', action='store_true', help='Start gathering of data')
我希望允许这样做:
python file.py --export -l name1 -l name2 -d 1/1/2015
python file.py --export
python file.py --run
这是不允许的:
python file.py --run --export # Namespace(d=None, export=True, l=None, run=True)
python file.py --run -l name1 # Namespace(d=None, export=False, l=['name1'], run=True)
但是,正如 cmets 所指示的那样,现在任何不允许的操作都不会引发错误。
【问题讨论】:
标签: python python-2.7 argparse