python argparse命令行参数解析(推荐)

argparse是python用于解析命令行参数和选项的标准模块。
很多时候,需要用到解析命令行参数的程序,目的是在终端窗口输入训练的参数和选项。
argparse 模块可以让人轻松编写用户友好的命令行接口。
程序定义它需要的参数,然后 argparse 将弄清如何从 sys.argv 解析出那些参数。 argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。

test.py

# -*- coding: utf-8 -*-
import argparse

# (1) 声明一个parser对象,该对象包含将命令行解析成 Python 数据类型所需的全部信息。
ap = argparse.ArgumentParser(description='Process some integers.')

# (2) 添加参数
ap.add_argument("first")  # 位置参数,这里表示第一个出现的参数赋值给first
ap.add_argument("--digit", type=int, help="输入数字")  # 声明一个int类型参数
ap.add_argument("--name", help="名字", default="dog")  # 同上,default 表示默认值

# (3) 读取命令行参数
args = ap.parse_args()

# (4) 调用这些参数
print(args.first)
print(args.digit)
print("name = {}".format(args.name))

调用

python test.py position_arg --name qwe

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

add_argument()方法
(1)name or flags - 一个命名或者一个选项字符串的列表。(例如 foo 或 -f, --foo)
(2)action - 表示该选项要执行的操作
(3)default - 默认值
(4)dest - 用来指定参数的位置,被添加到 parse_args() 所返回对象上的属性名。
(5)type - 为参数类型。(例如int)
(6)choices - 用来选择输入参数的范围。(例如choice = [1, 5, 10])
(7)help - 用来描述这个选项的作用
(8)nargs - 命令行参数应当消耗的数目。
(9)const - 被一些 action 和 nargs 选择所需求的常数。
(10)required - 此命令行选项是否可省略 (仅选项可用)。
(11)metavar - 在使用方法消息中使用的参数值示例。

import argparse
import logging

"""
" File Description:
" dump model && deploy
"
" Created by zz on 2021/6/22.
" Mail: zz@baidu.com
"""
logging.basicConfig(level=logging.DEBUG)


def parse_args():
	ap = argparse.ArgumentParser(prog="deploy tool", description='dump or calib model && deploy')
	ap.add_argument("deploy_path", type=str, help="deploy base path")
	ap.add_argument("exp_name", type=str, help="train exp name")
	subparser = ap.add_subparsers(title="model deploy subparser", dest="mode")

	# subparser
	model_deploy_parser = subparser.add_parser("model", help="model deploy")
	model_deploy_parser.add_argument("--default", default=False, type=bool, help="whether that's default model")

	calib_deploy_parser = subparser.add_parser("calib", help="offline calib deploy")
	calib_deploy_parser.add_argument("--input", required=True, type=str, help="model offline calib file")

	args = ap.parse_args()
	return args

# global args
args = parse_args()
mode = args.mode
deploy_path = args.deploy_path
exp_name = args.exp_name

def main():
	if mode == "model":
		_deploy_model()
	elif mode == "calib":
		_deploy_calib()
	else:
		logging.error( "Mode error")

if __name__ == '__main__':
	main()

到此这篇关于python argparse命令行参数解析的文章就介绍到这了,更多相关python argparse命令行参数内容请搜索179885.Com以前的文章或继续浏览下面的相关文章希望大家以后多多支持179885.Com!

猜你在找的python argparse命令行参数解析(推荐)相关文章

今天给大家带来的是关于Python的相关知识,文章围绕着为什么Python不用设计模式展开,文中有非常详细的介绍及代码示例,需求的大佬可以参考下
今天给大家带来的是关于Python函数的相关知识,文章围绕着python中readlines函数的参数hint展开,文中有非常详细的介绍及代码示例,需求的大佬可以参考下
ansible是基于 paramiko 开发的,并且基于模块化工作,本身没有批量部署的能力,接下来通过本文给大家分享python ansible自动化运维工具的特点及执行流程,感兴趣的朋友
今天带大家了解一下能让Python提速超40倍的神器,文章围绕着神器Cython展开,文中有非常详细的介绍及代码示例,需求的大佬可以参考下
在上一篇讲了几个常用的“Pandas”函数之后,今天小编就为大家介绍一下在数据统计分析当中经常用到的“Pandas”函数方法,希望能对大家有所收获,需求的大佬可以参
最近打算在win系统下使用pycharm开发程序,并远程连接服务器调试程序,其中在import tensorflow时报错,本文就来介绍一下如何解决,感兴趣的可以了解一下
本文主要介绍了在pycharm下调用tensorflow库时会出现的问题,在本文做个小结,也给自己留个笔记,感兴趣的可以了解一下
我比较喜欢看公众号,有时遇到一个感兴趣的公众号时,都会感觉相逢恨晚,想一口气看完所有历史文章。本文主要介绍了使用Python获取公众号下所有的文章,感兴趣的可以了解
介绍了python实现不同电脑之间视频传输,本文视频传输实现的前提是确保发送端和接收端接在同一个局域网下,分为发送端和接收端,通过实例代码给大家介绍的非常详细,需
今天给大家带来的是关于Python基础的相关知识,文章围绕着Python类的方法及成员访问展开,文中有非常详细的介绍及代码示例,需求的大佬可以参考下
给大家介绍了关于Python绘图之turtle库的基础语法使用的相关资料, Turtle库是Python语言中一个很流行的绘制图像的函数库,再绘图的时候经常需要用到的一个库需求
Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8)和有潜在问题的代码,接下来通过本文给大