python中Argparse的简单使用

Argparse介绍

文档:https://docs.python.org/3.8/howto/argparse.html
主要功能就是可以从命令行读取参数,也可是直接使用下列的语句来查看相关参数的说明文档。

python text.py -h

或者

python text.py --help

Argparse的使用

有一个固定的套路就是

  1. 首先导入模块
  2. 创建一个解析对象
  3. 向该对象中添加你要用的命令行和选项
  4. 进行解析
import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
args = parser.parse_args()
# 解析完就可以使用,  解析名.参数名 就是该参数

参数说明

我们来看一个具体的例子

import argparse

parser = argparse.ArgumentParser(description="calculate X to the power of Y")
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", action="store_true")
group.add_argument("-q", "--quiet", action="store_true")
parser.add_argument("x", type=int, help="the base")
parser.add_argument("y", type=int, help="the exponent")
args = parser.parse_args()
answer = args.x**args.y

if args.quiet:
    print(answer)
elif args.verbose:
    print("{} to the power {} equals {}".format(args.x, args.y, answer))
else:
    print("{}^{} == {}".format(args.x, args.y, answer))

这里就是遵循这套路的四个步骤。
在创建一个解析对象时,有一个参数叫description,其作用就是是使用--help 或者 -h时,显示出来。在parser.add_argument()也有这样一个参数,就是help
parser.add_argument()中,
可选参数:就是可写,可不写的参数,短选项-v 和长选项--verboser都是该参数的名称,action内置6种动作可以在解析到一个参数时进行触发,默认为store

  • store保存参数值,可能会先将参数值转换成另一个数据类型。若没有显式指定动作,则默认为该动作。
  • store_const 保存一个被定义为参数规格一部分的值,而不是一个来自参数解析而来的值。这通常用于实现非布尔值的命令行标记。
  • store_ture/store_false 保存相应的布尔值。这两个动作被用于实现布尔开关。
  • append 将值保存到一个列表中。若参数重复出现,则保存多个值。
  • append_const 将一个定义在参数规格中的值保存到一个列表中。
  • version打印关于程序的版本信息,然后退出

固定参数:运行该文件必须要有的值,名字前面可以没有-,其中包含参数required=Truetype可以指定输入参数的类型,default设置一个默认参数,choice可以实现候选值的操作,如:choices=['test1.txt', 'text2.txt'],
其输出为

$ python3 prog.py 4 2
4^2 == 16
$ python3 prog.py 4 2 -q
16
$ python3 prog.py 4 2 -v
4 to the power 2 equals 16
$ python3 prog.py 4 2 -vq
usage: prog.py [-h] [-v | -q] x y
prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose
$ python3 prog.py 4 2 -v --quiet
usage: prog.py [-h] [-v | -q] x y
prog.py: error: argument -q/--quiet: not allowed with argument -v/--verbose

$ python3 prog.py --help
usage: prog.py [-h] [-v | -q] x y

calculate X to the power of Y

positional arguments:
  x              the base
  y              the exponent

optional arguments:
  -h, --help     show this help message and exit
  -v, --verbose
  -q, --quiet

参考

python3中argparse模块详解
python argparse模块学习笔记

上一篇:黑客用GitHub服务器挖矿,三天跑了3万个任务,代码惊现中文!


下一篇:NUC972平台学习笔记之dapa及prog编译