有一个python脚本,并使用argparse定义了一些可选参数,这些参数可以由用户在运行脚本之前提供。如果用户未输入定义的任何可选参数(python example.py->会给出错误消息),则我希望不允许脚本运行。关于如何执行此操作的任何想法?
答案 0 :(得分:1)
您可以将if
语句与在参数名称空间的所有值上使用any
函数的表达式一起使用,以测试是否给出了任何选项,如果没有,则打印用法然后退出:
import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-a')
parser.add_argument('-b')
args = parser.parse_args()
if not any(vars(args).values()):
parser.print_usage()
sys.exit()
答案 1 :(得分:0)
第一个答案很好。 或者,如果在脚本开始时也可以使用simlpe。
import sys
if (len(sys.argv) < x):
sys.exit("error message here")
其中x是您要查找的参数数量。 否则,您可以使用argparser或手动检查
argv[2] == "-b"