python - 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 yyyy-mm-dd")
parser.add_argument("-ed", "--end_date", dest="end_date",
type=valid_date,
help="Date in the format yyyy-mm-dd")
我希望如果 name='test1' 那么 start_date 和 end_date 将是强制性的。可以用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')
推荐阅读
- r - Convert string to HEX in R
- python - ModSim -Package - MacBookPro 上的安装问题 (2014)
- c++ - Get n-th character of string : AddressSanitizer: stack-use-after-scope
- scala - How filter seq of tuples by compare two values in tuple?
- java - Android: Fails to display RecyclerView correctly
- mysql - SQL COUNT if a specific value is found and output in the same line
- c# - 长时间运行的 Web API 任务
- java - Asynchronous Programming and Reactive Programming
- arrays - How to optimize conditional statement in for loop over image?
- c# - 在委托操作中标签不显示