有一个python脚本并使用argparse,我定义了一些可选参数,用户可以在运行脚本之前给出这些参数。如果用户不输入任何定义的可选参数(python example.py -> 给出错误消息(,我希望不允许脚本运行。关于如何做到这一点的任何想法?
您可以将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()
第一个答案相当不错。 或者,如果在脚本的开头,您可以使用 simlpe。
import sys
if (len(sys.argv) < x):
sys.exit("error message here")
其中 x 是您要查找的参数数量。 否则,您可以使用参数解析器或手动检查
argv[2] == "-b"