Argparse "arguments are required" 错误,即使我设置了默认值

Argparse "arguments are required" error even when I have a default value set

我对 argparse 中 add_argument() 方法的 default 关键字参数的使用有点困惑。这是一个非常简单的脚本,我 运行 看看参数是如何解析的:

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('some_string', default = 'hello world')
args = parser.parse_args()
print(args.some_string)

当我在终端中 运行 并提供参数时,它会正确解析:

$ python argparse_test.py "hello world"
> hello world

当我在我的终端中 运行 并 省略 一个参数时,我得到一个错误:

$ python argparse_test.py
> argparse_test.py: error: the following arguments are required: some_string

我是不是忽略了一些简单的东西?

您正在指定位置参数,这是必需的。您可能想要一个关键字参数,例如 --some_string。如果你有足够多的唯一字母,你可能还想为它指定一个别名,比如 -s。现在你可以运行喜欢

  • python argparse_test.py
  • python argparse_test.py --some_string="你好世界"