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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python标准库defaultdict模块使用示例
Apr 28 Python
pymongo给mongodb创建索引的简单实现方法
May 06 Python
python并发编程之线程实例解析
Dec 27 Python
详解基于django实现的webssh简单例子
Jul 17 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
如何利用Python分析出微信朋友男女统计图
Jan 25 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
解决import tensorflow as tf 出错的原因
Apr 16 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 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
深入解析php模板技术原理【一】
2008/01/10 PHP
解析php常用image图像函数集
2013/06/24 PHP
php实现文件下载代码分享
2014/08/19 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
原生javascript实现隔行换色
2015/01/04 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
浅谈nodejs中的类定义和继承的套路
2017/07/26 NodeJs
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[01:01:31]2018DOTA2亚洲邀请赛3月29日小组赛B组 Mineski VS paiN
2018/03/30 DOTA
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python多图片合并PDF的方法
2019/01/03 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
python如何制作缩略图
2019/04/30 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python实现五子棋程序
2020/04/24 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
工程招投标邀请书
2014/01/26 职场文书
2015年基层党建工作总结
2015/05/14 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
mysql数据库实现设置字段长度
2022/06/10 MySQL
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS