getopt-解析命令行参数
译者:
gashero |
日期:
2009-03-12 |
这个模块用于解析 sys.argv
中的命令行参数。他支持Unix的 getopt()
函数的功能。长选项的支持使用GNU软件。模块提供了一个函数和一个异常:
getopt(args,options[,long_options])
解析命令行参数,要去掉开头的运行程序引用。所以通常将args赋值为 sys.argv[1:]
。options参数可以跟一串字母,每个字母表示一个选项,含有后续值的选项后面加个冒号。
注意:不像GNU getopt()
,在非选项参数之后,所有的参数都被定义为非选项。
long_options,格式是字符串列表,选项名中不需要包含前导的"--"。长选项需要在参数后附带"=",然后跟一个值。如果只希望接受长选项,可以把options设置成空字符串。长选项会尽可能长的识别,例如long_options为
['foo','frob']
,则--fo会匹配--foo。但是--f不会匹配,而抛出 GetoptError
异常。
返回值包含两个元素:一个(option,value)列表,剩余的未解析参数。每个(option,value)对返回时,选项名包含前导的"-"或"--",选项参数作为第二个参数,或者为空字符串。它们在返回列表中出现的顺序与在命令行出现的顺序相同。长短选项混合。
gnu_getopt(args,options[,long_options])
这个函数工作方式类似于 getopt()
,除了使用GNU风格的扫描模式。这意味着选项和非选项可以混合在一起。而
getopt()
会在遇到非选项时就不再继续解析下去了。
如果选项第一个字符是"+",或者如果环境变量包含POSIXLY_CORRECT,遇到非选项参数时就停止解析了。
从Python2.3开始引入。
exception
GetoptError
这个异常在发现无法解析的命令行参数时或一个需要参数的选项没有给出时抛出。异常参数是描述错误原因的。对于长选项,给一个不需要参数的选项加了参数也会抛出异常。属性msg和opt给出了错误信息和相关选项,如果没有特定的选项,则opt是空字符串。
exception
error
就是 GetoptError
的别名,向后兼容。
例子,使用Unix风格:
>>> import getopt
>>> args='-a -b -cfoo -d bar a1 a2'.split()
>>> args
['-a','-b','-cfoo','-d','bar','a1','a2']
>>> optlist,args=getopt.getopt(args,'abc:d:')
>>> optlist
[('-a',''),('-b',''),('-c','foo'),('-d','bar')]
>>> args
['a1','a2']
使用长选项也很简单:
>>> s='--condition=foo --testing --output-file abc.def -x a1 a2'
>>> args=s.split()
>>> args
['--condition=foo','--testing','--output-file','abc.def','-x','a1','a2']
>>> optlist,args=getopt.getopt(args,'x',['condition=','output-file=','testing'])
>>> optlist
[('--condition','foo'),('--testing',''),('--output-file','abc.def'),('-x','')]
>>> args
['a1','a2']
脚本中的常见用法:
import getopt,sys
def main():
try:
opts,args=getopt.getopt(sys.argv[1:],'ho:v',['help','output='])
except getopt.GetoptError,err:
# 打印帮助信息并退出
print str(err)
usage()
sys.exit(2)
output=None
verbose=False
for o,a in opts:
if o=='-v':
verbose=True
elif o in ('-h','--help'):
usage()
sys.exit()
elif o in ('-o','--output'):
output=a
else:
assert(False,'unhandled option'
# ...
if __name__=='__main__':
main()
分享到:
相关推荐
GetOpt:一个命令行参数解析器
1、Linux系统C语言编程连接MySql数据库实现的用户 用户组 用户策略 管理系统(getopt解析命令行参数).c 代码的源文件。 user-usergroup-authoritys.vsd user-usergroup-authoritys.jpg 数据库的图,以及图片。 2、...
Getopt for Erlang 命令行解析模块,其语法与GNU getopt相似。要求您只需要一个较新的Erlang / OTP版本。 该模块已经过从R13B到20的所有版本的Erlang的测试。 您还需要在系统路径中使用的最新版本。安装要编译模块,...
getopt() 用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项...
getopt命令用于解析命令行选项,检测给定的选项是否合法。在此命令中,选项部分主要用于影响getopt命令解析选项,其中optstring是需要解析的合法选项的字符串,paramenters通常是一组变量,用于存储从命令行获取的每...
表字段描述: 1、users表(用户)字段有(id_ |name_名称|create_time_创建时间|creator_id_由谁创建|认证方式|dyn_sn_口令认证方式所需口令|dyn_pass_sn KEY认证方式所需文件|remark_描述) 2、usergroups表(用户...
本文实例讲述了python采用getopt解析命令行输入参数的方法,分享给大家供大家参考。 具体实例代码如下: import getopt import sys config = { "input":"", "output":".", } #getopt三个选项,第一个一般为sys...
optparse是一个开源, 可移植的, 可重入的和可嵌入的类getopt命令行参数解析器. 它支持POSIX getopt选项字符串, GNU风格的长参数解析, 参数置换和子命令处理.
python解析命令行参数主要有三种方法:sys.argv、argparse解析、getopt解析 方法一:sys.argv —— 命令行执行:python test_命令行传参.py 1,2,3 1000 # test_命令行传参.py import sys def para_input(): print...
windows 版本 getopt_long ,从GLIBC移植过来,解析命令行参数. 命令行参数可以分为两类,一类是短选项,一类是长选项,短选项在参数前加一杠"-",长选项在参数前连续加两杠"--",如下表(ls 命令参数)所示,其中-a,...
说明:getopt 函数是用来分析命令行参数的,参数 argc 和 argv 是由 main()传递的参数个数和内容,参数 optstring 为选项字符串,
getopt-从命令行参数解析选项。 素数-计算前200个素数。 missing_numbers-在两个文件中查找丢失的号码。 revbits-二进制数字的反向位。 revstring-反转字符串。 sort-对文件中的行进行排序。 strcomb-生成“字符串”...
lua_alt_getopt是用于Lua编程语言的模块,用于解析命令行参数。 目标:兼容POSIX“实用程序语法准则”(准则3-13),GNU getopt_long(3)扩展。
函数说明getopt被用来解析命令行选项参数。getopt_long支持长选项的命令行解析,函数中的参数argc和argv通常直接从main()的两个参数传递而来。optstring是选项参数组成的字符串。 字符串optstring可以下列元素: 1. ...
功能:C++命令行参数解析类。(控制台应用程序中使用)在 Windows 平台下使用 Linux 的 getopt, getopt_long, getopt_long_only 函数。压缩包内包含getopt.h,getopt.c和使用代码示例。在VS2010下编译通过,运行良好...
getopt,只能简单的处理命令行参数 optparse,功能强大,易于使用,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。 argparse,使其更加容易的编写用户友好的命令行接口。它所需的程序进程了参数定义,...
命令行解析函数getopt使用方法详解,更方便分析命令参数
主要介绍了Python命令行参数解析模块getopt使用实例,本文讲解了使用语法格式、短选项参数实例、长选项参数实例等内容,需要的朋友可以参考下
Quick Arg Parser是一个单头C ++库,用于使用最少的代码来解析命令行参数和选项。 您要做的就是实例化一个继承自MainArguments类型的类并访问其成员。 # include " quick_arg_parser.hpp " struct Args : ...
getopt被用来解析命令行选项参数。就不用自己写东东处理argv了