python argparse 简明教程
发布日期:2021-06-29 03:49:02 浏览次数:3 分类:技术文章

本文共 2538 字,大约阅读时间需要 8 分钟。

本文档为本人自己根据官网文档的理解,重新整理,希望可以帮到大家。

argparse是python标准库里面用来处理命令行参数的库

说人话就是:帮助我们能够从终端运行程序,加上需要的参数。

参考资料:

  • (中文资料)
  • (中文资料)

命令行参数分为位置参数选项参数

  • 位置参数就是程序根据该参数出现的位置来确定的
  • 选项参数数是应用程序已经提前定义好的参数,不是随意指定的

先看一个完整的例子

先创建一个hello.py的脚本,里面是下面的代码:

#!/usr/bin/env python3def main(name):    print("Hello", name, "Wellcome to SIMM!") if __name__ == "__main__":    from argparse import ArgumentParser    ap = ArgumentParser()    ap.add_argument("-n", "--name", type=str, required=True)    args = ap.parse_args()    main(args.name)

终端运行:

zdx@n100:~$ ./hello.py -n zdxHello zdx Wellcome to the world!

而对于一般的脚本,都需要加上标准I/O, 程序的输入和输出,一目了然。

if __name__ == "__main__":    from argparse import ArgumentParser    ap = ArgumentParser()    ap.add_argument("-i", "--input", type=str, required=True,        help="Input of the program.")    ap.add_argument("-o", "--output", type=str, required=True,        help="Output of the program.")    args = ap.parse_args()    main(args.input, args.output)

然后咱们看看一些细节

最简单的用法

(注意其中的是 ‘x’,不是’-x’)

import argparseparser = argparse.ArgumentParser()parser.add_argument('x', help="Please input a integer.")args = parser.parse_args()print(args.x)

终端运行:

zdx@n100:~$ ./argparse_test.py 11

‘x’ 与 ‘-x’ 的区别

多出‘-’,就必须在命令行加上’-x’, 才能传参,不然会报错

import argparseparser = argparse.ArgumentParser()parser.add_argument('-x', help="Please input a integer.")args = parser.parse_args()print(args.x)

终端运行

zdx@n100:~$ ./argparse_test.py -x 11

可以是多个‘-’,两个‘–’,三个’—'都可以…

parser.add_argument('--x')

终端运行

zdx@n100:~$ ./argparse_test.py --x 11

‘-x’ 与 ‘–x’ 区别

下面用 "–number"来举例子,从命令行传进来的参数,会赋值给args.number.

‘-n’ 方便终端使用,‘–number’ 就是变量的全名

import argparseparser = argparse.ArgumentParser()parser.add_argument('-n', "--number", help="Please input a integer.")args = parser.parse_args()print(args.number)

终端运行:

zdx@n100:~$ ./argparse_test.py -n 11

对同一个传参设置多个选项,就必须设置dest参数了

parser.add_argument('-x', '-variable', '-other', dest='x', help="Please input a integer.")

这个概念很好理解,看下示例你就明白了

zdx@n100:~$ ./argparse_test.py -x 11zdx@n100:~$ ./argparse_test.py -variable 11zdx@n100:~$ ./argparse_test.py -other 1   1

add_argument其他参数介绍

add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]):

  • name or flags - 一个命名或者一个选项字符串的列表,例如 foo 或 -f, --foo。
  • action - 当参数在命令行中出现时使用的动作基本类型。
  • nargs - 命令行参数应当消耗的数目。
  • const - 被一些 action 和 nargs 选择所需求的常数。
  • default - 当参数未在命令行中出现时使用的值。
  • type - 命令行参数应当被转换成的类型。
  • choices - 可用的参数的容器。
  • required - 此命令行选项是否可省略 (仅选项可用)。
  • help - 一个此选项作用的简单描述。
  • metavar - 在使用方法消息中使用的参数值示例。
  • dest - 被添加到 parse_args() 所返回对象上的属性名。

转载地址:https://blog.csdn.net/zdx1996/article/details/107875429 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:升级ubuntu的kernel版本
下一篇:python matplotlib 给图任意加标注

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月04日 22时00分47秒