Python ArgumentParser - 错误 - 缺少参数?

Python ArgumentParser - Error - Missing arguments?

我正在尝试 运行 此代码:

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),但找不到我的答案。有人可以帮我吗?

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

这可能是它所期待的

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

注意,上面的<query><dir>是填充词。您必须提供与查询的应用程序定义内联的查询。 -o 标志表示需要传递目录。因此,它可以像 ./output 或这两行之间的东西一样简单。

您将 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")

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