Python ArgumentParser-错误-缺少参数?

时间:2018-08-31 13:26:52

标签: python argparse

我正在尝试运行以下代码:

ap = argparse.ArgumentParser()

ap.add_argument("-q", "--query", required=True, help="search query to search Bing Image API for")

ap.add_argument("-o", "--output", required=True, help="path to output directory of images")

args = vars(ap.parse_args())

我收到此错误:

usage: ipykernel_launcher.py [-h] -q QUERY -o OUTPUT

ipykernel_launcher.py: error: the following arguments are required:
-q/--query, -o/--output

我尝试查看ArgumentParser文档(here),但找不到我的答案。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

您必须启动提供错误消息中指示的参数的应用程序。在您的代码中,两个参数均为required。因此,您必须提供它们以运行应用程序。

这是期望的结果

python ipykernel_launcher.py -q "<query>", -o "<dir>"

请注意,上面的<query><dir>是填充符。您必须提供与查询的应用程序定义内联的查询。 -o标志指示需要传递目录。因此,它可能很简单,例如./output或这些行之间的内容。

答案 1 :(得分:0)

您将required选项设置为true:

ap.add_argument("-q", "--query", **required=True,** help="search query to search Bing Image API for")
ap.add_argument("-o", "--output", **required=True**, help="path to output directory of images")

(添加**以提高可见度) 写作

ap.add_argument("-q", "--query", **required=False,** help="search query to search Bing Image API for")
ap.add_argument("-o", "--output", **required=False**, help="path to output directory of images")

相反,应该解决此问题。除非您当然希望它们是必需的,否则您必须使用参数调用脚本。