python - 即使我设置了默认值,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
我忽略了一些简单的事情吗?
解决方案
您正在指定一个位置参数,这是必需的。您可能想要一个关键字参数,例如--some_string
. 如果你有足够多的独特字母,你可能还想为它指定一个别名,比如-s
. 现在你可以像这样运行它
- python argparse_test.py
- python argparse_test.py --some_string="hello world"
推荐阅读
- solr - 何时使用 edismax 而不是 dismax?
- html - Select2 - 当你有长字符串时突出显示的选项背景颜色宽度?
- swift - NSButton 操作在自定义 NSView 中不起作用
- python - 使用列表中的一对
- pandas - tf.estimator.inputs.pandas_input_fn 标签张量
- javascript - 如何使用 DOM 逐步增加剩余边距
- python - 如何在一页中编辑多个用户信息?
- swift3 - 如何使用 tableview 将页面导航到另一个视图控制器确实选择方法
- salesforce - 批量 API 错误:InvalidBatch:未找到字段名称:Id
- lua - openresty lua-resty-mysql 可以在日志阶段使用