【python】命令参执行程序的开发利器--getopt模块

原创 2015年07月09日 10:08:07

  对于程序员而言,效率是日常工作中必须考虑的一个要点,优秀的编程习惯会大大减少工作时间以及精力,缩短开发周期。例如程序的执行,更多的程序员会选择简单快捷的命令行参数执行方式,而对于python而言,模块getopt正好可以用来执行该问题。

  模块提供的两个函数中,getopt(args, options[, long_options])函数是命令行执行的核心。在代码中可有如下格式:

options,args=getopt.getopt(sys.argv[1:],"hi:o:",["help","input=","ouput="])
  函数参数分别为命令行输入参数的字符串,单字母参数集,多字母参数集。返回值分两部分,第一部分是格式为(option,value)的元组,第二部分为输入参数的剩余无用部分。可能大家看到这边有点糊涂。我们利用一个例子讲解:

options,args=getopt.getopt(sys.argv[1:],"hi:o:",["help","input=","ouput="])

for option,value in options:
    if option in ("-h","help"):
        print helpFormation
    if option in ("-i","input="):
        print "input is:",value
    if option in ("-o","output="):
        print "output is:",value
 
  在cmd输入参数可以是:python demo.py -h -i abc -o cba

                                          python demo.py help input=abc output=cba

  通过例子可以更加清晰的理解。

  函数getopt()的第二参数代表单字母参,后边不跟冒号代表输入时必须不跟相应参数,比如”python demo.py -h“;跟冒号代表输入时必须跟相应参数,比如”python demo.py -i abc“

第三参数代表多字母参,后边不跟等号代表输入时必须不跟相应参数,比如”python demo.py help“;跟等号代表输入时必须跟相应参数,比如”python demo.py input=abc“。

  其返回值将分两部分,第一部分为元组,其形式如:[("-h",),("-i","abc"),("-o","output")],第二部分为输入输入参数剩余字符串。如果输入参数为”python demo.py -h -i abc -o cba abcdefg“,那么args将是”abcdefg“。

 


Python之getopt模块

第一步很简单,只需要:  import getopt, sys 第二步处理方法如下(以Python 手册上的例子为例): try: opts, args = getopt.getopt(s...
  • u010951938
  • u010951938
  • 2016年03月12日 13:12
  • 611

python模块commands执行系统命令

上一篇中提到了执行系统命令的新利器os模块,其中有两个方法可以用来执行系统命令一个是os.popen()一个是os.system(),还有两种可以用来执行系统命令的方法一个是:python自带的com...
  • Together_CZ
  • Together_CZ
  • 2017年03月09日 18:17
  • 590

Python 有两个内建的模块(getopt,optparse)用于处理命令行参数

Python 有两个内建的模块用于处理命令行参数: 一个是 getopt,《Deep in python》一书中也有提到,只能简单处理 命令行参数; 另一个是 optparse...
  • mack415858775
  • mack415858775
  • 2014年09月30日 14:05
  • 4249

getopt模块之getopt与gnu_getopt的不同

在unix系统中,程序的执行常伴有一些配置选项,如 df -h 或 df --help 其中,-h和--help就代表把分区的大小以KB或MB等单位显示,以方便用户阅读 更复杂一些的, ./run.p...
  • yanfengxi
  • yanfengxi
  • 2013年07月30日 22:21
  • 508

linux下使用getopt处理命令行

以前在linux的shell下运行程序时也带过参数,在参数的处理上是自己写个简单的解析函数来处理argv[]的,显得很麻烦而且笨拙。今天学习代码时才发现有个getopt函数可以轻松的处理命令行参数。难...
  • dndxhej
  • dndxhej
  • 2013年03月15日 18:55
  • 7178

使用getopt命令解析shell脚本的命令行选项

在之前的一篇文章中,介绍了如何利用shell内置的getopts命令来帮助我们处理shell脚本选项和参数,其缺点是只能处理短选项,无法处理长选项。下面,本文将要介绍的是getopt命令,它可以同时处...
  • sofia1217
  • sofia1217
  • 2016年08月18日 20:26
  • 6695

Python命令行参数解析:getopt和argparse

一 Python的参数传递 在Python中命令行参数通过sys.argv传递,它的类型是一个list类型,其中的元素为字符串。 # -*-coding:GBK-*- # !python.exe # ...
  • lanzheng_1113
  • lanzheng_1113
  • 2017年08月25日 17:09
  • 235

第4章 处理用户输入与显示数据------------(getopt命令)

4.2.3 使用getopt命令          getopt命令是个不错的工具,在处理命令行选项和参数时非常方便。它对命令行参数进行重现组织,使其更便于在脚本中解析。 1.命令格式     ...
  • henni_719
  • henni_719
  • 2016年12月07日 14:31
  • 308

perl模块Getopt::Std用法及实例-从命令行读取参数模块

Getopt::Std模块的使用: 初始设置: 在程序中加入如下代码: use Getopt::Std; use vars qw($opt_d $opt_f $opt_p); g...
  • konglongaa
  • konglongaa
  • 2017年05月02日 07:19
  • 351

使用getopt模块获取命令行选项

库为getopt 函数为getopt.getopt() import getopt shortargs = 'f:t' longargs = ['directory-pref...
  • u010103202
  • u010103202
  • 2017年07月12日 15:48
  • 102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【python】命令参执行程序的开发利器--getopt模块
举报原因:
原因补充:

(最多只允许输入30个字)