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="你好世界"
我对 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="你好世界"