Python如何使用argparse模块处理命令行参数


Posted in Python onDecember 11, 2019

这篇文章主要介绍了Python如何使用argparse模块处理命令行参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

介绍

argparse是python3标准库里用来处理命令行参数的模块

使用三步走:

  • 创建 ArgumentParser() 对象
  • 调用 add_argument() 方法添加参数
  • 使用 parse_args() 解析添加的参数

实例

我们先来创建一个python文件

vim test.py

然后开始在输入模式(i)下输入代码

import argparse # 导入模块

parser = argparse.ArgumentParser() # 创建一个对象
parser.add_argument("square", help="pls enter a num", type=int) # 增加一个叫square的参数,类型必须是int
parser.add_argument("input_str", help="pls enter a string", type=str) # 增加一个叫input_str的参数,类型必须是str
args = parser.parse_args() # 解析
print(args.square ** 2)
print(args.input_str)

然后,让我们来运行一下

python test.py 3 "I am a string!"
# 结果是:
# 9
# I am a string!

如果要查看文件的参数信息

python test.py -h

如果要设定可选参数

parser = argparse.ArgumentParser()
parser.add_argument("--argument1", “-arg1”, help="display the first argument", type=int) # 参数名前加--,取别名为-arg1
parser.add_argument("--argument2", choices=[5,10,20], help="display the second argument", type=int) # choices 为限定候选列表
args = parser.parse_args()

print(args)
if args.argument1 and args.argument2:
  print(args.argument1 + args.argument2)

执行一下

python test.py
# Namespace(argument1=None, argument2=None)

python test.py -arg1 3 --argument2 5
# Namespace(argument1=3, argument2=5)
# 8

如果要设定必选参数

使用required

parser.add_argument("--num", type=int, required=True, help="must enter a num")

参数还可以是文件

parser.add_argument('file', type=argparser.FileType('r')) # 读取文件
parser.add_argument('file', default='text.txt', type=argparser.FileType('r')) # 读取文件,预定义参数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
python print 按逗号或空格分隔的方法
May 02 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
对Python中Iterator和Iterable的区别详解
Oct 18 Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 Python
Python3.5多进程原理与用法实例分析
Apr 05 Python
python抖音表白程序源代码
Apr 07 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
Python3使用xlrd、xlwt处理Excel方法数据
Feb 28 Python
Python中关于logging模块的学习笔记
Jun 03 Python
详解Flask前后端分离项目案例
Jul 24 Python
opencv3/C++ 平面对象识别&透视变换方式
Dec 11 #Python
Python Lambda函数使用总结详解
Dec 11 #Python
Python迭代器模块itertools使用原理解析
Dec 11 #Python
Python+Selenium+phantomjs实现网页模拟登录和截图功能(windows环境)
Dec 11 #Python
Python partial函数原理及用法解析
Dec 11 #Python
opencv3/python 鼠标响应操作详解
Dec 11 #Python
通过实例简单了解Python中yield的作用
Dec 11 #Python
You might like
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
CodeIgniter框架URL路由总结
2014/09/03 PHP
Yii框架用户登录session丢失问题解决方法
2017/01/07 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
Jquery 表格合并的问题分享
2011/09/17 Javascript
使用js正则控制input标签只允许输入的值
2013/07/29 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
最简单的JS实现json转csv的方法
2019/01/10 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
javascript前端实现多视频上传
2020/12/13 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
python mac下安装虚拟环境的图文教程
2019/04/12 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
Python进程的通信Queue、Pipe实例分析
2020/03/30 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
简单了解python列表和元组的区别
2020/05/14 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
eBay比利时购物网站:eBay.be
2019/08/09 全球购物
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
创先争优制度
2014/01/21 职场文书
学习演讲稿范文
2014/05/10 职场文书
甲乙双方合作协议书
2014/10/13 职场文书
优秀教师单行材料
2014/12/16 职场文书
荆州古城导游词
2015/02/06 职场文书
师范生见习总结范文
2015/06/23 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android