python getopt模块使用实例解析


Posted in Python onDecember 18, 2019

这篇文章主要介绍了python getopt模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

官方介绍地址: https://docs.python.org/3.1/library/getopt.html

实用方向:

处理命令行参数的一个方法,简单好用。

方法:

getopt模块总共有2个函数,分别为:

  • getopt.getopt
  • getopt.gnu_getopt

简单使用:

getopt这个函数常用,简单看一下这个函数的使用:

getopt.getopt(args, shortopts, longopts=[])

看这几个参数,

args为:脚本接受的参数,传入为list类型,此处与sys.argv连并使用

shortopts:短参数。就是参考:python3 test.py -v ,这个-v就是需要用到的短参数。

longopts=[]:长参数。就是参考:python3 test.py --v,两个-的就是需要用到的长参数。

先简单有一个印象。

那后面需要用到的参数怎么传入,怎么处理呢?

参数处理:

import sys
import getopt

opts = getopt.getopt(sys.argv[1:],"-h",["help"])
print(opts)

我们在命令行跑一下:

GL$python3 111.py --help
([('--help', '')], [])

GL$python3 111.py -h 
([('-h', '')], [])

打印了如上的内容,我们依次看一下

1、我们为什么要用sys.argv[1:]呢?是因为第0个是函数本身,所以接受除本身之外的所以参数

2、返回的是一个tuple,第一个list我们可以理解是传入的--h,加到了一个list里,第二个list则是-h后面加的参数,这里没有加,所以为空

下面来实践一下:

import getopt
import sys

opts,args = getopt.getopt(sys.argv[1:],'-h-w:-v',['help','version'])
for opt_name,opt_value in opts:

  if opt_name in ('-h','--help'):
    print(opt_name,"this is help")
    exit()

  if opt_name == '-w':
    print("-w:",opt_value)
    exit()

  if opt_name in ('-v','--version'):

    print('version:0.01')
    exit()

运行起来看看:

GL$python3 111.py -w 123-w: 123GL$python3 111.py -h
-h this is help
GL$python3 111.py -v
version:0.01GL$python3 111.py --help
--help this is help

由上,又出现了个新东西,shortopts里面怎么多了个冒号呢??那个是干啥的?

其实,从上面的例子也可以简单看出来,加冒号意思就是-w后面要加参数,不加冒号就不用加参数,longopts也是一样,冒号用等号代替。

好,这里都已经有些了解了。那么后面的args,是干啥的呀。还有opts又是干啥的呀。

opts 就是分析出的格式信息。args 为不属于格式信息的剩余的命令行参数。

opts 是一个两元组的列表。(选项串, 附加参数) 。如果没有则为空。

下面看例子:

我们在最开头打印args,也就是加一行 print(args),我就不贴代码了。

运行起来:

GL$python3 111.py --help ssss
['ssss']
--help this is help/GL$python3 111.py -w 123 123
['123']
-w: 123

多余的未识别的就成了args里面的内容了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python常见文件操作的函数示例代码
Nov 15 Python
python中黄金分割法实现方法
May 06 Python
python利用百度AI实现文字识别功能
Nov 27 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
深度辨析Python的eval()与exec()的方法
Mar 26 Python
超简单使用Python换脸实例
Mar 27 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python时间日期操作方法实例小结
Feb 06 Python
Python 如何批量更新已安装的库
May 26 Python
Python wordcloud库安装方法总结
Dec 31 Python
python math模块的基本使用教程
Jan 16 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 #Python
Python Gluon参数和模块命名操作教程
Dec 18 #Python
python turtle 绘制太极图的实例
Dec 18 #Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
Dec 18 #Python
简单了解Python读取大文件代码实例
Dec 18 #Python
python 比较2张图片的相似度的方法示例
Dec 18 #Python
使用Python的Turtle库绘制森林的实例
Dec 18 #Python
You might like
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
简单的cookie计数器实现源码
2013/06/07 PHP
教你如何快捷的使用cmd访问mysql小技巧
2014/05/26 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
自定义Angular指令与jQuery实现的Bootstrap风格数据双向绑定的单选与多选下拉框
2015/12/12 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
2016/09/17 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
小程序实现录音功能
2020/09/22 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[01:33:59]真人秀《加油 DOTA》 第六期
2014/09/09 DOTA
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
python处理PHP数组文本文件实例
2014/09/18 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
python简单实现插入排序实例代码
2020/12/16 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
自我评价怎么写正确呢?
2013/12/02 职场文书
乌鸦喝水教学反思
2014/02/07 职场文书
司机岗位职责说明书
2014/07/29 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
文明单位创建材料
2014/12/24 职场文书
企业安全生产规章制度
2015/08/06 职场文书
重阳节主题班会
2015/08/17 职场文书