Python argparse-添加带条件的强制参数
嗨,我想添加以下参数:Python argparse-添加带条件的强制参数,python,argparse,Python,Argparse,嗨,我想添加以下参数: 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
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")
我希望在名称为='test1'的情况下,开始日期和结束日期将是强制性的。
能用arparse做吗?或者我需要一些验证方法来强制执行它吗
谢谢您可以检查条件,然后检查是否同时提供了其他参数
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')
你不能让一些参数依赖于其他参数,你必须在以后的代码中这样做我认为这回答了你的问题:这回答了你的问题吗@请注意,这个问题不是关于参数的存在,而是它得到的一个特定值,尽管我试图避免使用“如果”,但我发现没有其他方法:)