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 相关文章推荐
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
Jul 11 Python
跟老齐学Python之用Python计算
Sep 12 Python
Django框架中数据的连锁查询和限制返回数据的方法
Jul 17 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Sanic框架流式传输操作示例
Jul 18 Python
如何通过python画loss曲线的方法
Jun 26 Python
Django项目使用ckeditor详解(不使用admin)
Dec 17 Python
Python数组拼接np.concatenate实现过程
Apr 18 Python
python 安装移动复制第三方库操作
Jul 13 Python
python的链表基础知识点
Sep 13 Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 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
php采集速度探究总结(原创)
2008/04/18 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
2009/04/25 PHP
基于php缓存的详解
2013/05/15 PHP
处理单名多值表单的详解
2013/06/08 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
学习jquery之一
2007/04/27 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
2015/07/18 Javascript
jQuery实用技巧必备(上)
2015/11/02 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
vue 中directive功能的简单实现
2018/01/05 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
原生js实现下拉选项卡
2019/11/27 Javascript
对比Python中__getattr__和 __getattribute__获取属性的用法
2016/06/21 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python3 replace()函数使用方法
2018/03/19 Python
Python向Excel中插入图片的简单实现方法
2018/04/24 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python实现求特征选择的信息增益
2018/12/18 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
用vue.js组件模拟v-model指令实例方法
2019/07/05 Python
python实现QQ邮箱发送邮件
2020/03/06 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
百思买加拿大:Best Buy Canada
2018/03/20 全球购物
Fanatics官网:运动服装、球衣、运动装备
2020/10/12 全球购物
教师应聘个人求职信
2013/12/10 职场文书
优秀学生事迹材料
2014/02/08 职场文书
文科生自我鉴定
2014/02/15 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
2015年公司新年寄语
2014/12/08 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书