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中的多重装饰器
Apr 11 Python
python简单实现旋转图片的方法
May 30 Python
在Linux系统上部署Apache+Python+Django+MySQL环境
Dec 24 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
Python实现的字典值比较功能示例
Jan 08 Python
python微信公众号开发简单流程
Mar 23 Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 Python
python之PyQt按钮右键菜单功能的实现代码
Aug 17 Python
python能开发游戏吗
Jun 11 Python
Python 实现将某一列设置为str类型
Jul 14 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
PyQt5实现多张图片显示并滚动
Jun 11 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 escape URL编码
2008/12/10 PHP
PHP源码之explode使用说明
2011/08/05 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
from 表单提交返回值用post或者是get方法实现
2013/08/21 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
javascript 回调函数详解
2014/11/11 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
AngularJS实现注册表单验证功能
2017/10/16 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Django ModelForm组件使用方法详解
2019/07/23 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
初三学习决心书
2014/03/11 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
教师师德考核自我评价
2014/09/13 职场文书
高三毕业评语
2014/12/31 职场文书
感谢信范文大全
2015/01/23 职场文书
师范生见习总结范文
2015/06/23 职场文书
JavaScript实现登录窗体
2021/06/22 Javascript
Python+Selenium实现读取网易邮箱验证码
2022/03/13 Python