您当前的位置: 首页 >  Python

Better Bench

暂无认证

  • 1浏览

    0关注

    695博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Python3】argparse解析与使用

Better Bench 发布时间:2021-01-01 12:03:59 ,浏览量:1

目录
  • 1 作用
  • 2 使用方式
  • 3 举例理解
    • 3.1 官方详细教程
    • 3.2 简单例子教程

1 作用

argparse 是对终端输入的命令行的参数进行解析,俗称命令行解析器。说白了就是在终端输入带参数的命令,它就会自动解析这命令里面的参数,实现对应参数的功能。(命令行是终端输入的指令)

2 使用方式

总体分为四个步骤

# 导入包
import argparse
# 初始化一个明细解析器对象
parser = argparse.ArgumentParser()
# 自定义一个参数和相应的功能
parser.add_argument()
# 执行解析
parser.parse_args()

其中ArgumentParser()在括号内是有参数的,在如下列了出来,但是在此以空括号举例理解使用。

prog - 程序的名称(默认:sys.argv[0]) usage - 描述程序用途的字符串(默认值:从添加到解析器的参数生成) description - 在参数帮助文档之前显示的文本(默认值:无) epilog - 在参数帮助文档之后显示的文本(默认值:无) parents - 一个 ArgumentParser 对象的列表,它们的参数也应包含在内 formatter_class - 用于自定义帮助文档输出格式的类 prefix_chars - 可选参数的前缀字符集合(默认值:’-’) fromfile_prefix_chars - 当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:None) argument_default - 参数的全局默认值(默认值: None) conflict_handler - 解决冲突选项的策略(通常是不必要的) add_help - 为解析器添加一个 -h/–help 选项(默认值: True) allow_abbrev - 如果缩写是无歧义的,则允许缩写长选项 (默认值:True) exit_on_error - 决定当错误发生时是否让 ArgumentParser 附带错误信息退出。 (默认值: True)

3 举例理解 3.1 官方详细教程

官方文档详细介绍-Argparse 教程 argparse — 命令行选项、参数和子命令解析器

3.2 简单例子教程

定义一个prog.py文件

# 导入包
import argparse
# 初始化一个解析器
parser = argparse.ArgumentParser()
# 定义一个变量是square,指定类型是int,help是描述信息没有实际作用。这行用于接收传入的int型参数,并赋值给square
parser.add_argument("square", type=int,
                    help="display a square of a given number")
# 定义一个参数是verbosity,-v表示在命令行中如果有-v这个参数,那命令行中-v后的那个数值参数就会赋值给verbosity
parser.add_argument("-v", "--verbosity", type=int,
                    help="increase output verbosity")
# 执行解析
args = parser.parse_args()
# 对变量square进行操作,求平方
answer = args.square**2
# 对传入的verbosity参数判断,如果等于2,执行以下代码
if args.verbosity == 2:
    print("the square of {} equals {}".format(args.square, answer))
# 对传入的verbosity参数判断,如果等于1,执行以下代码
elif args.verbosity == 1:
    print("{}^2 == {}".format(args.square, answer))
else:
    print(answer)

以下是在终端执行 1、只传入一个参数4,那在代码里square = 4

python3 prog.py 4

输出:16 2、传入两个参数,4和-v,这时候报错,因为命令行再-v后面没有再附带数值参数

python3 prog.py 4 -v

输出:usage: prog.py [-h] [-v VERBOSITY] square prog.py: error: argument -v/–verbosity: expected one argument 3、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为1

python3 prog.py 4 -v 1

输出:4^2 == 16

4、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为2

python3 prog.py 4 -v 2

输出:the square of 4 equals 16

5、传入三个参数,4 -v 2 表示square =4,-v表示指定给verbosity赋值为3

python3 prog.py 4 -v 3

输出: 16

关注
打赏
1665674626
查看更多评论
立即登录/注册

微信扫码登录

0.0400s