有没有一种方法可以为np.数组而不是单子? 我知道我能做这样的事
import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-foo', action='store', type=int, nargs='+')
args = parser.parse_args(['-foo', '1', '2'])
args.foo = np.array(args.foo)
但是我想在解析之前指定参数的完整描述。在
有办法吗?在
要在
StoreAction
操作处理程序的工作方式中指定一个细微的更改,您可以创建一个具有适当更改的处理程序的subclass(文档在this section上面有一个示例)正如我在评论中指出的,“在解析之前完成描述”并不清楚。在
但是我突然想到可以用
argparse
创建一个2d数组。我可以使用nargs=3
指定3列,使用action='append'
收集多个子列表中的输入。当然,type
指定它是int还是float。在如果我没有正确的列数,它会抱怨的。它不能控制的只是行数;但是我可以很容易地在创建后检查数组的形状。在
有了这个
append
,在action
中创建数组是没有意义的。即使使用1d输入,在解析过程中执行np.array
调用也没有什么好处。解析后处理(并测试)args
值是非常好的实践。在不过,最好将数组值放在一个CSV文件中,并通过
argparse
指定该文件的名称。argparse
实际上不是用来输入大量值的。它不是一个通用的文件解析器。命令行控制代码的行为。在相关问题 更多 >
编程相关推荐