Python 2.7 argparse
我有一个函数:
def x(a,b,c)
如何从命令行收集适合此模式的变量值?
python test.py --x_center a --y_center b c
(例如,c
有 3 个、4 个或更多值)
I have a function:
def x(a,b,c)
How can I collect variable values from the command line that fit this pattern?
python test.py --x_center a --y_center b c
(c
has, for example, 3, 4 or more values )
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以这样做:
尝试一下:
使用
argparse
模块,您通常会希望从main
函数(以及一些调用它的样板文件)开始。在main
函数中,您需要创建一个参数解析器
。之后,您需要添加一些参数。要添加参数,请使用
add_argument
。在这里,我们添加了一个选项
-x
,它还有一个长选项变体--x-center
。我们传递给add_argument
的type
告诉它要求它是一个float
(如果它不是有效的 float,则会出错)。我们还告诉 argparse 它是必需的;如果未提供,则会出错。这就像以前一样,但由于我们传递给它的字符串不是以破折号开头,因此它假设它不是一个选项,而是一个非选项参数。再次,我们告诉它我们想要
float
。nargs
允许您指定它需要多个参数。*
指定我们需要任意数量的参数。最后,我们使用
parse_args
解析命令行。这将返回一个我们将存储的对象。然后,您可以访问该 args 对象上的选项和参数,并在程序中执行相关操作。
You can do something like that like this:
Try it out:
To use the
argparse
module, you'll normally want to start with amain
function (and some boilerplate that calls it). In themain
function, you'll want to create anArgumentParser
. After that, you'll want to add some arguments.To add an argument, you use
add_argument
.Here, we're adding an option,
-x
, which also has a long option variant,--x-center
. Thetype
we pass toadd_argument
tells it to require it to be afloat
(and error if it's not a valid float). We also tellargparse
that it's required; if it's not provided, error.This is just like before, but since the string we pass to it does not begin with a dash, it assumes it is not an option, but rather a non-option argument. Again, we tell it we want
float
s.nargs
allows you to specify that it takes more than one argument.*
specifies that we want any amount of arguments.Finally, we parse the command line with
parse_args
. This returns an object that we'll store.You can then access the options and arguments on that
args
object and do relevant things in your program.