[英]Allow unknown arguments using argparse
我有一个python脚本,要求用户输入两个参数来运行它,这些参数可以命名为任何东西。
我还使用了argparse,以允许用户使用开关'-h'来获取运行脚本所需的指令。
问题是,现在我使用argparse时,在脚本中传递两个随机命名的参数时出现错误。
import argparse
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-h', '--help', action='help',
help='To run this script please provide two arguments')
parser.parse_args()
当前当我运行python test.py arg1 arg2时 ,错误是
error: unrecognized arguments: arg1 arg2
我希望该代码允许用户使用-h运行test.py(如果需要查看说明),但也允许他们使用任意两个参数运行脚本。
带有帮助标签的分辨率 ,可为用户提供有关所需参数的上下文。
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-h', '--help', action='help', help='To run this script please provide two arguments: first argument should be your scorm package name, second argument should be your html file name. Note: Any current zipped folder in the run directory with the same scorm package name will be overwritten.')
parser.add_argument('package_name', action="store", help='Please provide your scorm package name as the first argument')
parser.add_argument('html_file_name', action="store", help='Please provide your html file name as the second argument')
parser.parse_args()
import argparse
parser = argparse.ArgumentParser(description='sample')
# Add mandatory arguments
parser.add_argument('arg1', action="store")
parser.add_argument('arg2', action="store")
# Parse the arguments
args = parser.parse_args()
# sample usage of args
print (float(args.arg1) + float(args.arg2))
您需要将这些参数添加到解析器中:
parser.add_argument("--arg1", "-a1", dest='arg1', type=str)
parser.add_argument("--arg2","-a2", dest='arg2', type=str)
如果这些参数没有参数required = true ,则可以在没有此参数的情况下调用该程序,因此可以仅使用-h标志运行该程序。 要使用参数运行程序:
python test.py --arg1 "Argument" --arg2 "Argument"
然后,要在变量中包含参数,您必须阅读它们:
args = parser.parse_args()
argument1=args.arg1
argument2=args.arg2
尝试以下代码:-
import argparse
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('-h', '--help', action='help',
help='To run this script please provide two arguments')
parser.add_argument('arg1')
parser.add_argument('arg2')
args, unknown = parser.parse_known_args()
您所有未知的参数将在unknown
解析,而所有args
均在args
解析。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.