Python包argparse模块常用方法


Posted in Python onJune 04, 2021

argparse介绍

  argparse包用于解释命令行参数。这里给出几个常用的方法。

# 创建解析器对象
# @para: description:描述信息
Arg = ArgumentParser(description='An example for Python package argparse~')

# 添加参数
# @para: 后面举例子再细说
Arg.add_argument()

# 解析参数
# @return: 返回的arg是一个对象,里面的属性和属性值来自命令行
arg = Arg.parse_args()

# 创建互斥组
# @description:互斥组内的参数不能同时出现
Arg.add_mutually_exclusive_group()

argparse实例

基本使用

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
arg = Arg.parse_args()

不添加任何参数,cmd运行结果:

Python包argparse模块常用方法

默认可以使用-h或者?help查看参数列表。因为没有添加任何参数,因此,这里只有一个-h。可以看到description的描述信息也可以在-h下打印出来。

添加参数

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('a')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

添加参数后,需要在运行后面带上参数,否则报错。

添加可选参数

前面添加的参数,一定要传入参数值。

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',help='add all para!')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

只需在参数前加上-(用于一个字母,例如-h)或者--(用于多个字母,例如--help),即可选择是否需要传入参数。

Python包argparse模块常用方法

但是如果指定了参数,后面一定要跟上参数值,否则会报错。例如:

Python包argparse模块常用方法

在添加参数的时候,加上action="store_true"

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',help='add all para!',action="store_true")
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

当我们带上-a运行,在代码里得到的a值为True,不带则为False。这个是不是和-h类似,当我们带上-h,里面有个if判断,就把相关信息print出来了。

固定类型type

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',type = int ,help='add all para!',action="store_true")
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

可选值和默认值

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Arg.add_argument('-a','-all',type = int ,help='add all para!',choices=[0,1,2,3],default='3')
arg = Arg.parse_args()
print("arg 的内的参数{}".format(arg.a))
args = vars(arg)
print("arg 的内的参数{}".format(args['a']))

Python包argparse模块常用方法

互斥参数

import argparse
Arg = argparse.ArgumentParser(description='An example for Python package argparse~')
Gro = Arg.add_mutually_exclusive_group()
Gro.add_argument('-a','-all',help='add all para!')
Gro.add_argument('-b','-ball',help='add ball para!')

arg = Arg.parse_args()
args = vars(arg)
if args.get('a',None):
    print("arg 的内的参数b:{}".format(args['a']))
if args.get('b', None):
    print("arg 的内的参数b:{}".format(args['b']))

Python包argparse模块常用方法

可以看出,在互斥组内,参数不可以同时出现,仅可出现一个或者都不出现。所以在互斥组内添加的参数必须是可选参数,也就是以-或者--开头的。 

以上就是Python包argparse模块常用方法的详细内容,更多关于Python包argparse使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python魔术方法详解
Feb 14 Python
Python提取Linux内核源代码的目录结构实现方法
Jun 24 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
python3 使用Opencv打开USB摄像头,配置1080P分辨率的操作
Dec 11 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
Django media static外部访问Django中的图片设置教程
Apr 07 Python
python中threading开启关闭线程操作
May 02 Python
Django serializer优化类视图的实现示例
Jul 16 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
基于Python绘制子图及子图刻度的变换等的问题
May 23 Python
opencv读取视频并保存图像的方法
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 #Python
python opencv旋转图片的使用方法
Python还能这么玩之用Python修改了班花的开机密码
Anaconda安装pytorch及配置PyCharm 2021环境
python如何利用cv2模块读取显示保存图片
Jun 04 #Python
Python实现socket库网络通信套接字
Jun 04 #Python
You might like
让PHP以ROOT权限执行系统命令的方法
2011/02/10 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
PDO::errorInfo讲解
2019/01/28 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
2020/01/23 PHP
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
JavaScript中的toUTCString()方法使用详解
2015/06/12 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
使用CoffeeScrip优美方式编写javascript代码
2015/10/28 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
js 奇葩技巧之隐藏代码
2017/08/11 Javascript
Vue替代marquee标签超出宽度文字横向滚动效果
2019/12/09 Javascript
js实现带有动画的返回顶部
2020/08/09 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
[01:01:23]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第一场 11.26
2020/11/30 DOTA
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python django事务transaction源码分析详解
2017/03/17 Python
对dataframe进行列相加,行相加的实例
2018/06/08 Python
python pyheatmap包绘制热力图
2018/11/09 Python
利用Python实现原创工具的Logo与Help
2018/12/03 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
Django model.py表单设置默认值允许为空的操作
2020/05/19 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python 写一个性能测试工具(一)
2020/10/24 Python
大型活动策划方案
2014/01/12 职场文书
美术指导助理求职信
2014/04/20 职场文书
委托收款证明
2015/06/23 职场文书
PostgreSQL将数据加载到buffer cache中操作方法
2021/04/16 PostgreSQL
Python+Tkinter制作专属图形化界面
2022/04/01 Python