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 的异同相关推荐

  1. python getopt使用_Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  2. Python命令行参数解析模块getopt使用实例

    这篇文章主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式.短选项参数实例.长选项参数实例等内容,需要的朋友可以参考下 格式 getopt(args, options ...

  3. python中getopt函数_Python中getopt()函数的使用

    在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能.目前有短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加 ...

  4. python getopt.getopt,Python optparser 和getopt

    以下分为 1)python的命令行参数; 2)使用getopt模块处理Unix模式的命令行选项; 3)使用强大的optparser模块处理Unix模式的命令行选项 1). python的命令行参数: ...

  5. python getopt方法_python的getopt

    1.简介 所有UNIX程序甚至那些具有图形用户界面(Graphical User Interface,GUI)的程序,都能接受和处理命令行选项.对于某些程序,这是与其他程序或用户进行交互的主要手段.具 ...

  6. 【Arduino】HX711 拉力计称重模块 两个模块同时使用

    硬件 hx711模块使用原理图如下: 应变片原理 图片来源 程序 使用此测试程序需要先下载 HX711 库文件. 下载方法:在"工具"->"管理库"中,搜 ...

  7. QuartusII联合modelsim仿真时调用两个模块如何设置

    在QuartusII中Setting中simulation下添加Test bench如下图所示: 在Test bench中添加需要仿真调用的两个子模块代码如下图所示: 添加完后即可仿真!

  8. 如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中。bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生

    如果在一个工程中有两个vhd文件,就相当于有两个模块,那么对于这个工程整体的bdf文件生成,怎么把这两个模块都加到同一个bdf文件中.bdf文件中两个模块之间的连线及输入输出,是自己输进去的还是自动生 ...

  9. PLUS模型有两大模块,一是基于土地扩张分析策略的规则挖掘框架,二是基于多类型随机补丁种子的CA模型,此外该模型还内嵌了Markov chain,以便于对土地利用数量需要作出预测。

    工业革命以来,社会生产力迅速提高,人类活动频繁,此外人口与日俱增对土地的需求与改造更加强烈,人-地关系日益紧张.此外,土地资源的不合理开发利用更是造成了水土流失.植被退化.水资源短缺.区域气候变化.生 ...

最新文章

  1. 《深入解析Android 5.0系统》——第1章,第1.2节安装开发包
  2. HTML5第一弹:彩虹爆炸图
  3. 小程序监听android返回键,微信小程序左上角返回按钮触发事件
  4. mysql with lock tables_mysql出现大量FLUSH TABLES WITH READ LOCK
  5. IOS6 编程:Core Data持久化数据存储(5)-使用Core Data模板创建EntLibCart项目
  6. Pr 入门教程,如何进行创意调整?
  7. 在Vmware中安装archlinux(2008.3core)的流程与心得
  8. Html网页设计-动漫网站设计
  9. CodeBlocks汉化包
  10. 【总结】《牛腩》颗粒归仓篇
  11. Android4太极,Android 绘制太极图实例详解
  12. SiriKit测试全攻略
  13. Java面试题:MySql高频面试题
  14. Source Insight——C/C++代码阅读器
  15. Vim编辑器Windows配置(一)
  16. -XX:+DisableExplicitGC弊端
  17. lua的垃圾回收机制
  18. mysql主从复制mmm_MMM+MYSQL主从同步
  19. 面向对象的三个基本特征和五种设计原则
  20. 闲谈杂记:理想中智能家居App是否都可以做成分享模式

热门文章

  1. 计算机考研 东华大学,东华大学(专业学位)计算机技术考研难吗
  2. redis和sqlserver数据同步_redis缓存和mysql数据库同步
  3. js获取当前日期时间和其他操作
  4. 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
  5. java jnlp_Java Web Start 与jnlp结合实例讲解
  6. python bottle session-使用beaker让bottle支持session
  7. seo技术_基础知识_网站pr值的意义_日思663.带你入门SEO基础知识
  8. osea/ introduction
  9. SpringMVC教程
  10. python复制文件夹不阻塞_Python线程,线程不阻塞