- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想解析一个带有多个参数的选项并返回一个值作为我选择的集合,例如tuple
或 np.array
而不是 list
。
我可以按照 this answer 中的建议在解析后简单地转换结果列表,
parser.add_argument('--foo', nargs='*')
options = parser.parse_args('--foo 1 2 3'.split())
# manual casts go here
options.foo = tuple(options.foo)
但这可能会很麻烦且容易出错,尤其是。如果我们有很多这样的参数要转换。
是否可以让 ArgParser
本身将参数存储在列表以外的集合中?
最佳答案
可以通过创建自定义操作来实现。例如,
import argparse
import numpy as np
def collect_as(coll_type):
class Collect_as(argparse.Action):
def __call__(self, parser, namespace, values, options_string=None):
setattr(namespace, self.dest, coll_type(values))
return Collect_as
parser = argparse.ArgumentParser()
parser.add_argument('--foo', nargs='*', type=int, action=collect_as(tuple))
parser.add_argument('--bar', nargs='*', type=np.float32, action=collect_as(np.array))
options = parser.parse_args('--foo 1 2 3 --bar 4 5 6'.split())
print(options)
# Namespace(bar=array([4., 5., 6.], dtype=float32), foo=(1, 2, 3))
关于python - 使用 nargs 参数时如何使 argparse.ArgumentParser 返回元组或 np.array 而不是列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50365835/
我正在使用 argparse 将几个位置参数解析为 input然后是几个位置参数 output .由于参数数量不受限制,我尝试使用 --作为分隔符。我通常使用 -- 取得成功分隔符使用 nargs=a
This question already has answers here: Comma separated inputs instead of space separated inputs for
通常我有这样的争论: parser.add_argument( "--distances", nargs="+", type=int, default=[1, 2, 3
我想在 python argparse 中使用文件参数,文件中的行如下所示: --contour_levels=-4 -2 0 2 4 或: --contour_levels -4 -2 0 2 4
似乎将元组设置为位置参数的 metavar 并请求帮助不起作用: import argparse parser = argparse.ArgumentParser() parser.add_argum
这是我的解析器配置的一部分 parser.add_argument( 'infile', help="The file to be imported", type=argparse.F
我有一个使用 argparse 的程序。它需要 1 个必需的位置参数、1 个可选的位置参数和 1 个标志参数。 类似于: usage: test.py [-h] [-a A] b [c] 所以,我尝试
我有一个合并多个视频和音频文件的脚本。现在我有一个允许四个值的参数: # -A FILENAME LANGUAGE POSITION SPEED $ script.py [... more param
我正在尝试创建一个类似的命令 prog [-h] [-i ID [ID ...]] | -x [SOMETHING] {cmd1,cmd2,cmd3}... 所以基本上在顶层我有一个解析器,
所以我正在尝试创建一个解析器,它可以接受任意的选择列表(要绘制的东西),并为每个选择指定可选参数。并避开了子子解析器的想法,只使用以下形式的多个参数: --plot foo --xlim 0 10 -
我正在使用 argparse 接受选项,其中一个是列表: parser.add_argument('-S', '--size', help='Number of results to show', d
我正在尝试创建一个带有两个参数的选项。第一个参数应通过选择进行验证,但第二个参数是任意用户提供的值。例如。 > app -h usage: app [--option {count,label} ar
如何使用带有变量 nargs 的 argparse 进行条件循环?所以,基本上,它应该在有或没有参数的情况下运行。我正在尝试: parser = argparse.ArgumentParser(des
我有一个这样工作的程序: prog.py filename -r 使用我给定的默认默认值 prog.py filename -r 0 500 20 使用 0、500 和 20 我已经成功地使用了: c
对于 Click 中的可选参数,是否有与 argparse 的 nargs='*' 功能等效的功能? 我正在编写命令行脚本,其中一个选项需要能够接受无限数量的参数,例如: foo --users al
我正在尝试编写一个函数 wo,您可以通过 argparse 解析可变数量的参数 - 我知道我可以通过 nargs="+" 来做到这一点。遗憾的是,argparse 帮助的工作方式(以及人们通常在 CL
我就废话不多说了,大家还是直接看代码吧~ ? 1
我正在使用命令行实用程序来满足我的项目的一项要求:optparse。 假设我使用如下所示的 add_option 实用程序: parser.add_option('-c','--categories'
以下是我要实现的目标的简短摘要: 获取一个或多个(表格)文件 寻找一个特定的字符串键(目前只有一个键,但我可以想象扩展它以接受多个键) 匹配键的行,提取给定位置或位置范围内的字符。 因此,在理想情况下
这是我的 argparse 示例 sample.py import argparse parser = argparse.ArgumentParser() parser.add_argument("-
我是一名优秀的程序员,十分优秀!