首页 > 解决方案 > 即使我设置了默认值,Argparse“需要参数”错误

问题描述

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

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

我忽略了一些简单的事情吗?

标签: pythonargparse

解决方案


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

  • python argparse_test.py
  • python argparse_test.py --some_string="hello world"

推荐阅读