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中方法链的使用方法
Feb 23 Python
Python实现分段线性插值
Dec 17 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
python3实现点餐系统
Jan 24 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
Python reversed函数及使用方法解析
Mar 17 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python 利用OpenCV给照片换底色的示例代码
Aug 03 Python
Python threading模块condition原理及运行流程详解
Oct 05 Python
matplotlib教程——强大的python作图工具库
Oct 15 Python
python3 sqlite3限制条件查询的操作
Apr 07 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
PHP读书笔记整理_结构语句详解
2016/07/01 PHP
php记录搜索引擎爬行记录的实现代码
2018/03/02 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
TreeView 用法(有代码)(asp.net)
2011/07/15 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
python控制台英汉汉英电子词典
2020/04/23 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
浅谈python元素如何去重,去重后如何保持原来元素的顺序不变
2020/02/28 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
意大利简约的休闲品牌:Aspesi
2018/02/08 全球购物
小学生自我鉴定
2013/10/12 职场文书
个人自我鉴定写法
2013/11/30 职场文书
岗位职责风险防控
2014/02/18 职场文书
小组名称和口号
2014/06/09 职场文书
车辆工程专业求职信
2014/06/14 职场文书
小学教师师德整改措施
2014/09/29 职场文书
安全保证书格式
2015/02/28 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
mysql创建存储过程及函数详解
2021/12/04 MySQL
阿里云日志过滤器配置日志服务
2022/04/09 Servers