Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python argparse-添加带条件的强制参数_Python_Argparse - Fatal编程技术网

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')

你不能让一些参数依赖于其他参数,你必须在以后的代码中这样做我认为这回答了你的问题:这回答了你的问题吗@请注意,这个问题不是关于参数的存在,而是它得到的一个特定值,尽管我试图避免使用“如果”,但我发现没有其他方法:)