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的闭包和装饰器
Feb 26 Python
Python 备份程序代码实现
Mar 06 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python pandas 如何替换某列的一个值
Jun 09 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
numpy求平均值的维度设定的例子
Aug 24 Python
python多线程并发及测试框架案例
Oct 15 Python
python实现二分类的卡方分箱示例
Nov 22 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Python轻量级web框架bottle使用方法解析
Jun 13 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 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
php中全局变量global的使用演示代码
2011/05/18 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
常用PHP封装分页工具类
2017/01/14 PHP
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
JQuery最佳实践之精妙的自定义事件
2010/08/11 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
JavaScript中的关联数组问题
2015/03/04 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
微信小程序如何自定义table组件
2019/06/29 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
vue实现虚拟列表功能的代码
2020/07/28 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python实现挑选出来100以内的质数
2015/03/24 Python
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
python多线程socket编程之多客户端接入
2017/09/12 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
python五子棋游戏的设计与实现
2019/06/18 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Django操作session 的方法
2020/03/09 Python
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
经销商订货会主持词
2014/03/27 职场文书
学生会部长竞聘书
2014/03/31 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
博物馆观后感
2015/06/05 职场文书
MySQL时间盲注的五种延时方法实现
2021/05/18 MySQL