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 xml解析实例详解
Nov 14 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
Jun 18 Python
python 公共方法汇总解析
Sep 16 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
python新式类和经典类的区别实例分析
Mar 23 Python
Django 用户登陆访问限制实例 @login_required
May 13 Python
用OpenCV进行年龄和性别检测的实现示例
Jan 29 Python
PyCharm 安装与使用配置教程(windows,mac通用)
May 12 Python
Python读写yaml文件
Mar 20 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
计数器详细设计
2006/10/09 PHP
UCenter Home二次开发指南
2009/05/28 PHP
php5 apache 2.2 webservice 创建与配置(java)
2011/01/27 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
如何判断元素是否为HTMLElement元素
2013/12/06 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JS实现适合于后台使用的动画折叠菜单效果
2015/09/21 Javascript
BootStrap3中模态对话框的使用
2017/01/06 Javascript
vue数据双向绑定原理解析(get & set)
2017/03/08 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
vue elementUI table 自定义表头和行合并的实例代码
2019/05/22 Javascript
Python fileinput模块使用介绍
2014/11/30 Python
python 用下标截取字符串的实例
2018/12/25 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
对python 中class与变量的使用方法详解
2019/06/26 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
Python实现汇率转换操作
2020/05/03 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
PyCharm常用配置和常用插件(小结)
2021/02/06 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
python re模块和正则表达式
2021/03/24 Python
应届生骨科医生求职信
2013/10/31 职场文书
中学校庆方案
2014/03/17 职场文书
文艺晚会策划方案
2014/06/11 职场文书
内科护士节演讲稿
2014/09/11 职场文书
人代会简报
2015/07/21 职场文书
教师素质教育心得体会
2016/01/19 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python