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显示生日是星期几的方法
May 27 Python
Python selenium 三种等待方式解读
Sep 15 Python
轻量级的Web框架Flask 中模块化应用的实现
Sep 11 Python
Python数据集切分实例
Dec 08 Python
python 多维高斯分布数据生成方式
Dec 09 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
python数据分析:关键字提取方式
Feb 24 Python
python数字类型math库原理解析
Mar 02 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
Python通过字典映射函数实现switch
Nov 06 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
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
探讨:parse url解析URL,返回其组成部分
2013/06/14 PHP
PHP header()函数常用方法总结
2014/04/11 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP实现的获取文件mimes类型工具类示例
2018/04/08 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
js自动查找select下拉的菜单并选择(示例代码)
2014/02/26 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
JavaScript输入分钟、秒倒计时技巧总结(附代码)
2017/08/17 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
koa socket即时通讯的示例代码
2018/09/07 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)
2020/06/05 Javascript
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
2020/12/02 Vue.js
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
python网页请求urllib2模块简单封装代码
2014/02/07 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
Python 正则表达式入门(中级篇)
2016/12/07 Python
python3写爬取B站视频弹幕功能
2017/12/22 Python
Python3中在Anaconda环境下安装basemap包
2018/10/21 Python
python 使用while写猜年龄小游戏过程解析
2019/10/07 Python
Python中pass的作用与使用教程
2020/11/13 Python
德国网上药房:Apotal
2017/04/04 全球购物
修理厂厂长岗位职责
2014/01/30 职场文书
售后服务经理岗位职责
2014/02/25 职场文书
公安交警个人对照检查材料思想汇报
2014/10/01 职场文书
卫生主题班会
2015/08/14 职场文书