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 = arg
elif opt == '-s':
seq = arg
print('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 = arg
print('Molde1','chip',chip)
elif args[0]=="Model2":
for opt,arg in opts:
if opt == "-h":
sys.exit(0)
elif opt == "-c":
chip = arg
elif opt == "-s":
seq = arg
print('Molde1','chip',chip,'seq',seq)
if __name__=='__main__':
main(sys.argv[1:])

在命令行输入参数,所有参数得到正常解析。

总结:getopt.gnu_getopt有getopt.getopt的基本接受参数功能,但是对参数中有 [option] 选项的时候,需要用getopt.getopt解决。

最新文章

  1. 19-typedef
  2. NoSql数据库初探-mongoDB环境搭建
  3. left join on 和where条件的放置
  4. vs2013的安装以及单元测试
  5. 【转】如何建立一个样式新颖的CSS3搜索框
  6. [codevs1155][KOJ0558][COJ0178][NOIP2006]金明的预算方案
  7. SAE云平台上传图片和发送邮件
  8. spring data redis使用示例
  9. Wbemtest查询
  10. Linux 常用命令记录
  11. leetcode remove Nth Node from End python
  12. Erich Gamma
  13. Unity3D【新手问题】阴影效果不显示的原因
  14. Apache Zeppelin
  15. Vue组件中的问题
  16. 转载:实现MATLAB2016a和M文件关联
  17. 蜕变成蝶~Linux设备驱动之中断与定时器
  18. Modbus通信协议 【 初识 Modbus】
  19. 2018.12.31 NOIP训练 czy的后宫5(树形dp)
  20. Eclipse关掉项目SVN的链接

热门文章

  1. bzoj 4565 字符合并
  2. 配置文件Struts.xml 中type属性 redirect,redirectAction,chain的区别
  3. 【java规则引擎】drools6.5.0版本api简介
  4. Spring IOC容器在Web容器中是怎样启动的
  5. unity drawcall测试
  6. windows中文编码报错 com.google.gson.JsonIOException: java.nio.charset.MalformedInputException: Input length = 1
  7. DHCP(四)
  8. Java-Maven-Runoob:Maven 构建 & 项目测试
  9. PHP中的逻辑判断函数empty() isset() is_null() ==NULL ===NULL
  10. python开发模块基础:异常处理&hashlib&logging&configparser