Python getopt模块处理命令行选项实例

 更新时间:2014年05月13日 10:55:05   作者:  
这篇文章主要介绍了Python getopt模块处理命令行选项实例,本文讲解相对简单,需要的朋友可以参考下

getopt模块用于抽出命令行选项和参数,也就是sys.argv
命令行选项使得程序的参数更加灵活。支持短选项模式和长选项模式
例如  python scriptname.py -f 'hello' --directory-prefix=/home -t --format 'a' 'b'

复制代码 代码如下:

import getopt, sys
shortargs = 'f:t'
longargs = ['directory-prefix=', 'format']
opts, args = getopt.getopt( sys.argv[1:], shortargs, longargs )

getopt.getopt ( [命令行参数列表], '短选项', [长选项列表] )

短选项名后的冒号 : 表示该选项必须有附加的参数
长选项名后的等号 = 表示该选项必须有附加的参数

返回 opts 和 args
opts 是一个参数选项及其value的元组 ( ( '-f', 'hello'), ( '-t', '' ), ( '--format', '' ), ( '--directory-prefix', '/home' ) )
args 是一个除去有用参数外其他的命令行输入 ( 'a', 'b' )  

复制代码 代码如下:
# 然后遍历 opts 便可以获取所有的命令行选项及其对应参数了
for opt, val in opts:
    if opt in ( '-f', '--format' ):
        pass
    if ....

使用字典接受命令行的输入,然后再传送字典,可以使得命令行参数的接口更加健壮

# 两个来自 python2.5 Documentation 的例子

复制代码 代码如下:

>>> import getopt, sys
>>> arg = '-a -b -c foo -d bar a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'abc:d:' )
>>> optlist
[('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')]
>>> args
['a1', 'a2']

>>> arg = '--condition=foo --testing --output-file abc.def -x a1 a2'
>>> optlist, args = getopt.getopt( sys.argv[1:], 'x', ['condition=', 'output-file=', 'testing'] )
>>> optlist
[ ('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x','') ]
>>> args
['a1', 'a2']

相关文章

  • Python与Redis的连接教程

    Python与Redis的连接教程

    这篇文章主要介绍了Python与Redis的连接教程,Redis是一个高性能的基于内存的数据库,需要的朋友可以参考下
    2015-04-04
  • Sklearn调优之网格搜索与随机搜索原理详细分析

    Sklearn调优之网格搜索与随机搜索原理详细分析

    这篇文章主要介绍了Sklearn调优之网格搜索与随机搜索原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • PyQt QMainWindow的使用示例

    PyQt QMainWindow的使用示例

    这篇文章主要介绍了PyQt QMainWindow的使用示例,帮助大家更好的理解和学习使用pyqt,感兴趣的朋友可以了解下
    2021-03-03
  • selenium + python 获取table数据的示例讲解

    selenium + python 获取table数据的示例讲解

    今天小编就为大家分享一篇selenium + python 获取table数据的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python利用装饰器实现类似于flask路由

    Python利用装饰器实现类似于flask路由

    这篇文章主要为大家详细介绍了Python如何利用装饰器实现类似于flask路由,文中的示例代码讲解详细,对我们深入了解Python有一点的帮助,感兴趣的可以了解一下
    2023-02-02
  • 详解python第三方库的安装、PyInstaller库、random库

    详解python第三方库的安装、PyInstaller库、random库

    这篇文章主要介绍了python第三方库的安装、PyInstaller库、random库,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • python3设计模式之简单工厂模式

    python3设计模式之简单工厂模式

    这篇文章主要为大家详细介绍了python3设计模式之简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • python语音信号处理详细教程

    python语音信号处理详细教程

    在深度学习中,语音的输入都是需要处理的,下面这篇文章主要给大家介绍了关于python语音信号处理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Python技法-序列拆分详解

    Python技法-序列拆分详解

    Python中的任何序列(可迭代的对象)都可以通过赋值操作进行拆分,包括但不限于元组、列表、字符串、文件、迭代器、生成器等。
    2021-10-10
  • Pytorch之卷积层的使用详解

    Pytorch之卷积层的使用详解

    今天小编就为大家分享一篇Pytorch之卷积层的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论