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使用minidom读写xml的方法
Jun 03 Python
详解字典树Trie结构及其Python代码实现
Jun 03 Python
浅谈python抛出异常、自定义异常, 传递异常
Jun 20 Python
快速入手Python字符编码
Aug 03 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
python+django+rest框架配置创建方法
Aug 31 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
用python实现前向分词最大匹配算法的示例代码
Aug 06 Python
python调用有道智云API实现文件批量翻译
Oct 10 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
YII实现分页的方法
2014/07/09 PHP
php框架CodeIgniter使用redis的方法分析
2018/04/13 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
JQuery1.4+ Ajax IE8 内存泄漏问题
2010/10/15 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JS实现仿新浪微博发布内容为空时提示功能代码
2015/08/19 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
BootStrap中
2016/12/10 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
jQuery实现广告条滚动效果
2017/08/22 jQuery
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
Python使用新浪微博API发送微博的例子
2014/04/10 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
详解python 中in 的 用法
2019/12/12 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
纯CSS3实现的阴影效果
2014/12/24 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
Stuart Weitzman美国官网:美国奢华鞋履品牌
2016/08/18 全球购物
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
高中军训第一天感言
2014/03/06 职场文书
文明生主要事迹
2014/05/25 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技