Python 定义参数时出错
下面是使用python2.7的代码Python 定义参数时出错,python,argparse,Python,Argparse,下面是使用python2.7的代码main.py import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument("-1","--image", required = True, help = "Path to the image") Out[4]: _StoreAction(option_strings=['-1', '--image'], dest='image', nargs=None, const=
main.py
import argparse
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-1","--image", required = True, help = "Path to the image")
Out[4]: _StoreAction(option_strings=['-1', '--image'], dest='image',
nargs=None, const=None, default=None, type=None, choices=None, help='Path to
the image', metavar=None)
args = vars(ap.parse_args())
用法:main.py[-h]-1图像
main.py:错误:参数-1/--需要图像
要退出:请使用“退出”、“退出”或Ctrl-D。
发生异常,请使用%tb查看完整回溯
SystemExit:2
尽管遵循了这些步骤,我还是在代码行4中不断遇到错误。有什么事我做得不对吗?有人能给我指出正确的方向吗?在交互式shell中使用argparse将无法正常工作。argparse的本质是从sys.argv中提取参数,并根据您设置的规则进行解析。正如raylu所说,我建议设置一个python文件来运行。例如,在名为test_argparse.py的文件中:
import argparse
import cv2
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("-1","--image", required = True, help = "Path to the image")
args = vars(ap.parse_args())
print args['image']
然后可以通过在命令行执行
python test_argparse.py
来测试这一点。现在可以使用-1
、--image
、-h
或--help
标志调用此命令-h
和-help
将为您提供用法。看起来您正在python shell/REPL中运行此代码,在这种情况下,argparse正在解析启动shell的参数。您应该将此代码放在一个文件中,并使用要分析的参数运行该文件。您是如何运行此代码的?从贝壳里?“输出”和错误捕获看起来像是一个ipython
会话。是的,从一个shell。谢谢@raylu纠正我的误解。它现在正在运行一个文件中的代码,该文件包含用于清除涡度的参数。代码正在运行