python argparse 简明教程

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

argparse是python标准库里面用来处理命令行参数的库
说人话就是:帮助我们能够从终端运行程序,加上需要的参数。

参考资料:

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

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

先看一个完整的例子

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

#!/usr/bin/env python3

def 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 zdx
Hello 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 argparse
parser = argparse.ArgumentParser()
parser.add_argument('x', help="Please input a integer.")
args = parser.parse_args()
print(args.x)

终端运行:

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

‘x’ 与 ‘-x’ 的区别

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

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

终端运行

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

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

parser.add_argument('--x')

终端运行

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

‘-x’ 与 ‘–x’ 区别

下面用 "–number"来举例子,从命令行传进来的参数,会赋值给args.number.
‘-n’ 方便终端使用,‘–number’ 就是变量的全名

import argparse
parser = 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 1
1

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

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

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

zdx@n100:~$ ./argparse_test.py -x 1
1
zdx@n100:~$ ./argparse_test.py -variable 1
1
zdx@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() 所返回对象上的属性名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值