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之做一个小游戏
Sep 28 Python
python实现提取百度搜索结果的方法
May 19 Python
python将秒数转化为时间格式的实例
Sep 16 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
在PyCharm下打包*.py程序成.exe的方法
Nov 29 Python
对python的输出和输出格式详解
Dec 08 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
Python Scrapy多页数据爬取实现过程解析
Jun 12 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
python实现黄金分割法的示例代码
Apr 28 Python
Python常用配置文件ini、json、yaml读写总结
Jul 09 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项目打包方法
2008/02/18 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
js数组的操作详解
2013/03/27 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
window.location 对象所包含的属性
2014/10/10 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
Angularjs为ng-click事件传递参数
2017/06/15 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
js实现三角形粒子运动
2020/09/22 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
Python的Django框架中if标签的相关使用
2015/07/15 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
linux环境下python中MySQLdb模块的安装方法
2017/06/16 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
Pandas的数据过滤实现
2021/01/15 Python
信息专业个人的自我评价
2013/12/27 职场文书
问卷调查计划书
2014/01/10 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
医院保洁服务方案
2014/06/11 职场文书
小学生读书活动总结
2014/06/30 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Redis集群的关闭与重启操作
2021/07/07 Redis
MySQL命令无法输入中文问题的解决方式
2021/08/30 MySQL
MYSQL常用函数介绍
2022/05/05 MySQL