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两种遍历字典(dict)的方法比较
May 29 Python
Python二维码生成库qrcode安装和使用示例
Dec 16 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
深入理解Javascript中的this关键字
Mar 27 Python
Python 数据结构之队列的实现
Jan 22 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
python运用sklearn实现KNN分类算法
Oct 16 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
python异常处理和日志处理方式
Dec 24 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 Python
python 子类调用父类的构造函数实例
Mar 12 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 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内存不够用的快速解决方法
2013/10/26 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
PHP学习记录之常用的魔术常量详解
2019/12/12 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
js中将字符串转换成json的三种方式
2011/01/12 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
浅谈vue2 单页面如何设置网页title
2017/11/08 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
tracking.js实现前端人脸识别功能
2020/04/16 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
python模块之subprocess模块级方法的使用
2019/03/26 Python
python文件和文件夹复制函数
2020/02/07 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
工商管理实习自我鉴定
2013/09/28 职场文书
幼儿园新学期寄语
2014/01/18 职场文书
2014升学宴答谢词
2014/01/26 职场文书
小学毕业感言150字
2014/02/05 职场文书
学习决心书范文
2014/03/11 职场文书
酒店管理求职信范文
2014/04/06 职场文书
贷款委托书范本
2014/04/08 职场文书
三严三实对照检查材料
2014/08/25 职场文书
四风问题对照检查材料整改措施
2014/09/27 职场文书
学生检讨书如何写
2014/10/30 职场文书
初中作文评语集锦
2014/12/25 职场文书
学生保证书
2015/01/16 职场文书
违纪检讨书
2015/01/27 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
Java面试题冲刺第十六天--消息队列
2021/08/07 面试题