getopt两个模块getopt 和gun_getopt 的异同
getopt的两个模块getopt和gun_getopt都可以接收参数,但是又有不同;
先看 getopt.getopt这个模块:
import sys import getopt def main(param):opts, args = getopt.getopt(param,"hc:s:")print("opts",opts )print("args",args)for opt,arg in opts:if opt == "-h":print('help')elif opt == "-c":chip = argelif opt == '-s':seq = argprint('chip',chip,'seq',seq) if __name__=='__main__':main(sys.argv[1:])
在命令行运行并得到结果,从结果看到-c 和-s 都得到正确解析,如下图:
但是如果我们换一种输入参数,得到结果不能正确解析,如下图: 发现从5之后就没有解析,这些没有解析的参数放在args当中,导致seq 变量声明,最终报错。
而实际情况有这种需要,比如如下情况,可用getopt.gnu_getopt模块:
import sys import getopt def main(param):opts, args = getopt.gnu_getopt(param,"hc:s:")print(opts, args)if len(args)== 1:if args[0]=="Model1":for opt,arg in opts:if opt == "-h":sys.exit(0)elif opt == "-c":chip = argprint('Molde1','chip',chip)elif args[0]=="Model2":for opt,arg in opts:if opt == "-h":sys.exit(0)elif opt == "-c":chip = argelif opt == "-s":seq = argprint('Molde1','chip',chip,'seq',seq) if __name__=='__main__':main(sys.argv[1:])
在命令行输入参数,所有参数得到正常解析。
总结:getopt.gnu_getopt有getopt.getopt的基本接受参数功能,但是对参数中有 [option] 选项的时候,需要用getopt.getopt解决。
转载于:https://www.cnblogs.com/zdwu/p/9182211.html
getopt两个模块getopt 和gun_getopt 的异同相关推荐
- python getopt使用_Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- Python命令行参数解析模块getopt使用实例
这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...
- python中getopt函数_Python中getopt()函数的使用
在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能.目前有短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加 ...
- python getopt.getopt,Python optparser 和getopt
以下分为 1)python的命令行参数; 2)使用getopt模块处理Unix模式的命令行选项; 3)使用强大的optparser模块处理Unix模式的命令行选项 1). python的命令行参数: ...
- python getopt方法_python的getopt
1.简介 所有UNIX程序甚至那些具有图形用户界面(Graphical User Interface,GUI)的程序,都能接受和处理命令行选项.对于某些程序,这是与其他程序或用户进行交互的主要手段.具 ...
- 【Arduino】HX711 拉力计称重模块 两个模块同时使用
硬件 hx711模块使用原理图如下: 应变片原理 图片来源 程序 使用此测试程序需要先下载 HX711 库文件. 下载方法:在"工具"->"管理库"中,搜 ...
- QuartusII联合modelsim仿真时调用两个模块如何设置
在QuartusII中Setting中simulation下添加Test bench如下图所示: 在Test bench中添加需要仿真调用的两个子模块代码如下图所示: 添加完后即可仿真!
- 如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中。bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生
如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中.bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生 ...
- PLUS模型有两大模块,一是基于土地扩张分析策略的规则挖掘框架,二是基于多类型随机补丁种子的CA模型,此外该模型还内嵌了Markov chain,以便于对土地利用数量需要作出预测。
工业革命以来,社会生产力迅速提高,人类活动频繁,此外人口与日俱增对土地的需求与改造更加强烈,人-地关系日益紧张.此外,土地资源的不合理开发利用更是造成了水土流失.植被退化.水资源短缺.区域气候变化.生 ...
最新文章
- 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包
- HTML5第一弹:彩虹爆炸图
- 小程序监听android返回键,微信小程序左上角返回按钮触发事件
- mysql with lock tables_mysql出现大量FLUSH TABLES WITH READ LOCK
- IOS6 编程:Core Data持久化数据存储(5)-使用Core Data模板创建EntLibCart项目
- Pr 入门教程,如何进行创意调整?
- 在Vmware中安装archlinux(2008.3core)的流程与心得
- Html网页设计-动漫网站设计
- CodeBlocks汉化包
- 【总结】《牛腩》颗粒归仓篇
- Android4太极,Android 绘制太极图实例详解
- SiriKit测试全攻略
- Java面试题:MySql高频面试题
- Source Insight——C/C++代码阅读器
- Vim编辑器Windows配置(一)
- -XX:+DisableExplicitGC弊端
- lua的垃圾回收机制
- mysql主从复制mmm_MMM+MYSQL主从同步
- 面向对象的三个基本特征和五种设计原则
- 闲谈杂记:理想中智能家居App是否都可以做成分享模式
热门文章
- 计算机考研 东华大学,东华大学(专业学位)计算机技术考研难吗
- redis和sqlserver数据同步_redis缓存和mysql数据库同步
- js获取当前日期时间和其他操作
- 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
- java jnlp_Java Web Start 与jnlp结合实例讲解
- python bottle session-使用beaker让bottle支持session
- seo技术_基础知识_网站pr值的意义_日思663.带你入门SEO基础知识
- osea/ introduction
- SpringMVC教程
- python复制文件夹不阻塞_Python线程,线程不阻塞