Python 2.7 argparse

发布于 2024-12-19 12:08:05 字数 175 浏览 0 评论 0原文

我有一个函数:

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痞味浪人 2024-12-26 12:08:05

您可以这样做:

import argparse

def x(x_center, y_center, values):
    print "X center:", x_center
    print "Y center:", y_center
    print "Values:", values

def main():
    parser = argparse.ArgumentParser(description="Do something.")
    parser.add_argument('-x', '--x-center', type=float, required=True)
    parser.add_argument('-y', '--y-center', type=float, required=True)
    parser.add_argument('values', type=float, nargs='*')
    args = parser.parse_args()

    x(args.x_center, args.y_center, args.values)

if __name__ == '__main__':
    main()

尝试一下:

$ python test.py --x-center 1 --y-center 2 3 4 5
X center: 1.0
Y center: 2.0
Values: [3.0, 4.0, 5.0]

使用 argparse 模块,您通常会希望从 main 函数(以及一些调用它的样板文件)开始。在 main 函数中,您需要创建一个 参数解析器。之后,您需要添加一些参数。

要添加参数,请使用 add_argument

parser.add_argument('-x', '--x-center', type=float, required=True)

在这里,我们添加了一个选项 -x,它还有一个长选项变体 --x-center。我们传递给 add_argumenttype 告诉它要求它是一个 float (如果它不是有效的 float,则会出错)。我们还告诉 argparse 它是必需的;如果未提供,则会出错。

parser.add_argument('values', type=float, nargs='*')

这就像以前一样,但由于我们传递给它的字符串不是以破折号开头,因此它假设它不是一个选项,而是一个非选项参数。再次,我们告诉它我们想要floatnargs 允许您指定它需要多个参数。 * 指定我们需要任意数量的参数。

最后,我们使用 parse_args 解析命令行。这将返回一个我们将存储的对象。

然后,您可以访问该 args 对象上的选项和参数,并在程序中执行相关操作。

You can do something like that like this:

import argparse

def x(x_center, y_center, values):
    print "X center:", x_center
    print "Y center:", y_center
    print "Values:", values

def main():
    parser = argparse.ArgumentParser(description="Do something.")
    parser.add_argument('-x', '--x-center', type=float, required=True)
    parser.add_argument('-y', '--y-center', type=float, required=True)
    parser.add_argument('values', type=float, nargs='*')
    args = parser.parse_args()

    x(args.x_center, args.y_center, args.values)

if __name__ == '__main__':
    main()

Try it out:

$ python test.py --x-center 1 --y-center 2 3 4 5
X center: 1.0
Y center: 2.0
Values: [3.0, 4.0, 5.0]

To use the argparse module, you'll normally want to start with a main function (and some boilerplate that calls it). In the main function, you'll want to create an ArgumentParser. After that, you'll want to add some arguments.

To add an argument, you use add_argument.

parser.add_argument('-x', '--x-center', type=float, required=True)

Here, we're adding an option, -x, which also has a long option variant, --x-center. The type we pass to add_argument tells it to require it to be a float (and error if it's not a valid float). We also tell argparse that it's required; if it's not provided, error.

parser.add_argument('values', type=float, nargs='*')

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 floats. 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文