嗨,我想添加以下的参数,如果name='test1',那么start_date和end_date将是强制性的。
parser = argparse.ArgumentParser()
parser.add_argument('-n','--name', required=True)
parser.add_argument("-sd", "--start_date", dest="start_date",
type=valid_date,
help="Date in the format yyyy-mm-dd")
parser.add_argument("-ed", "--end_date", dest="end_date",
type=valid_date,
help="Date in the format yyyy-mm-dd")
I want that in case the name='test1' then start_date and end_date will be mandatory.Can it be done with arparse? or do I need some validation method to enforce it to be mandatory?
谢谢
你可以先检查条件,然后检查其他参数是否都被提供。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-n','--name', required=True)
parser.add_argument("-sd", "--start_date", dest="start_date",
help="Date in the format yyyy-mm-dd")
parser.add_argument("-ed", "--end_date", dest="end_date",
help="Date in the format yyyy-mm-dd")
args = parser.parse_args()
if args.name == "test1":
if args.start_date is None or args.end_date is None:
parser.error('Requiring start and end date if test1 is provided')