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 14 Python
儿童python练习实例
May 27 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
利用python将图片版PDF转文字版PDF
May 03 Python
python基于递归解决背包问题详解
Jul 03 Python
pandas数据处理进阶详解
Oct 11 Python
python计算n的阶乘的方法代码
Oct 25 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
Pycharm内置终端及远程SSH工具的使用教程图文详解
Mar 19 Python
Jupyter notebook无法导入第三方模块的解决方式
Apr 15 Python
python“静态”变量、实例变量与本地变量的声明示例
Nov 13 Python
python3中布局背景颜色代码分析
Dec 01 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
腾讯CMEM的PHP扩展编译安装方法
2015/09/25 PHP
微信JSSDK分享功能图文实例详解
2019/04/08 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
Javascript 面向对象之重载
2010/05/04 Javascript
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
vue中子组件的methods中获取到props中的值方法
2018/08/27 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
[19:15]DK战队纪录片
2014/09/02 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
Python实现文件复制删除
2016/04/19 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Numpy数组转置的两种实现方法
2018/04/17 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
成人大专生实习期的自我评价
2013/10/02 职场文书
网络工程师职业规划
2014/02/10 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
五四青年节演讲稿
2014/05/26 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
Java数组详细介绍及相关工具类
2022/04/14 Java/Android