python argparse 模块命令行参数用法及说明
作者:打工人小飞 发布时间:2023-10-26 00:08:27
标签:python,argparse,命令行,参数
argparse 是 python 的一个命令行解析包,可根据需要编写高可读性的程序。
网上的许多教程较为冗长和散漫,没有达到精练好掌握的目的,本文针对项目中对 argparse 的用法,用实例对各个参数进行讲解,力求达到让读者秒懂的目的。
先上代码
import argparse
if __name__ == '__main__':
# 创建命令行解析器句柄,并自定义描述信息
parser = argparse.ArgumentParser(description='test the argparse package')
# 定义必选参数 positionArg
parser.add_argument('positionArg')
# 定义可选参数verbosity1
parser.add_argument('--verbosity1', '-v1', help='test the optional arguments')
# 定义可选参数verbosity2,并通过设定store_true表示该选项不需要接收参数,若不设action,则默认是需要接收参数的,否则报错
parser.add_argument('--verbosity2', '-v2', action='store_true', help='test the action arg')
# 指定参数类型(默认是 str)
parser.add_argument('x', type=int, help='test the type')
# 设置参数的可选范围
parser.add_argument('--verbosity3', '-v3', type=str, choices=['one', 'two', 'three', 'four'], help='test choices')
# 设置参数默认值
parser.add_argument('--verbosity4', '-v4', type=str, choices=['one', 'two', 'three'], default=1, help='test default value')
args = parser.parse_args() # 返回一个命名空间
print(args)
params = vars(args) # 返回 args 的属性和属性值的字典
for k, v in params.items():
print(k, v)
代码示例中写上了详细的注释,观看注释也可了解各大概。
下面针对一些特殊点再作详述
action='store_true'
表示该选项不需要接收参数,直接设定该参数为 true,当然,如果不指定 -v2, 则该参数就是 false。
但如果把 action=’store_true’ 去掉,就必须给 -v2 指定一个值。
程序用法帮助
比如该程序命名为 testArg.py,则可在命令行执行如下语句:
python3 testArg.py -h
运行得到函数的用法帮助文档:
完整的命令行参数执行命令和效果如下:
当然,参数的值也可写成赋值形式,如下所示(等同于上图中的命令):
python3 testArg.py hehe -v1=verb1 --verbosity2 1 -v3=one -v4=two
中间打印的 Namespace 为参数解析返回的命名空间。
如此,结合实例,非常简洁易懂,分享之。当然还有一些其他的用法,此处只列出了一些最常用的用法,在使用中如有需要,可自行查阅文档。
来源:https://blog.csdn.net/huangfei711/article/details/80325946
0
投稿
猜你喜欢
- 1. 2D坐标轴1.1 绘制简单的曲线import matplotlib.pyplot as pltimport numpy as npx=
- 首先.还是看效果.实现对文本域textarea中文字字数的限制。然后.米了...看文件.里面写的很清楚了.下面这个是单独的效果..提示用al
- 前言在任何编程语言中,代码需要根据不同的条件在给定的输入中做不同的决定和执行相应的动作。例如,在一个游戏中,如果玩家生命点为0,游戏结束。在
- 有些使用Z-Blog的用户询问我,怎么实现我的月光博客首页上这种自动图文混排的版式效果,今天我就详细介绍一下在Z-Blog中实现这种图文混排
- 最近项目中需要与管易云erp做对接,看了他的接口文档,php的示例代码,于是用python仿写。其中传的参数data中前面几个json数据是
- 数据的合并与关联是数据处理过程中经常遇到的问题,在SQL、HQL中大家可能都有用到 join、uion all 等 ,在 Pandas 中也
- Python实现GIF动图的提取及合成在开始之前,先来一个动图开头(预览)图片转GIF动图1、准备工作在开始合并前,先明确要转换哪些图片,以
- 前言undefined 和 null 的区别是个老生常谈的话题了,之前我对二者的区别只是简单理解,例如二者转成 Boolean 类型都是 f
- 本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别。分享给大家供大家参考,具
- 匹配中文字符的正则表达式: [\u4e00-\u9fa5]匹配双字节字符(包括汉字在内):[^\x00-\xff]应用:计算字符串的长度(一
- 用python实现的抓取腾讯视频所有电影的爬虫# -*- coding: utf-8 -*-import reimport urllib2f
- Notes怀疑模型梯度 * ,想打印模型 loss 对各权重的导数看看。如果如果fit来训练的话,可以用keras.callbacks.Ten
- 许多人在编写程序的时候因为贪图方便或不小心使用到程式的保留字,有时明明程序没有错,就是无法正确执行。您知道有哪些常见的保留字吗? 下面的都是
- 数组:【重点1】implode(分隔,arr) 把数组值数据按指定字符连接起来例如:$arr=array('1','
- 可以的,看看下面的代码和说明:<%sessionID = session.SessionIDtimeout&nbs
- 一、协程官方描述;协程是子例程的更一般形式。 子例程可以在某一点进入并在另一点退出。 协程则可以在许多不同的点上进入、退出和恢复。 它们可通
- 一、首先从SQLServer中Error讲起,SQL中错误处理有些怪辟 错误级别同是16但结果都不同。select *
- 人生苦短,快学Python!最近有位读者朋友遇到了一个小问题,私聊找小五答疑。感觉也会有其他同学会遇到,所以干脆分享出来。如下图所示,在本地
- 这个话题是应腾讯ISD同仁之邀在WebReBuild三周年交流会上做的主题分享。由于临场等原因有些问题当时没有讲明白,回来后按原有思路形成了
- 导航栏是一个很好的功能,是Bootstrap 网站的一个突出特点。导航栏是响应式元组件就,作为应用程序或网站的导航标题。导航栏在移动设备的视