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学习笔记_数据排序方法
May 22 Python
python处理文本文件实现生成指定格式文件的方法
Jul 31 Python
Python变量和数据类型详解
Feb 15 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
Apr 15 Python
Python信息抽取之乱码解决办法
Jun 29 Python
Python实现类的创建与使用方法示例
Jul 25 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
python中使用while循环的实例
Aug 05 Python
pytorch实现focal loss的两种方式小结
Jan 02 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
python线性插值解析
Jul 05 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
[FAQ]PHP中的一些常识:类篇
2006/10/09 PHP
php Xdebug的安装与使用详解
2013/06/20 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
JS实现仿QQ效果的三级竖向菜单
2015/09/25 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
vue如何在自定义组件中使用v-model
2018/05/14 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
2020/02/20 Javascript
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
python如何写出表白程序
2020/06/01 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
Python面向对象多态实现原理及代码实例
2020/09/16 Python
python em算法的实现
2020/10/03 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
PHP数据运算类型都有哪些
2013/11/05 面试题
晚宴邀请函范文
2014/01/15 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
五五普法心得体会
2014/09/04 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis