2010-07-13 110 views

回答

32

查看argparse模块(或针对较旧Python版本的optparse)。
请注意,​​/optparse是更新,更好地替代getopt,所以如果你是新手,这是他们推荐的选择。从getopt文档:

注意getopt模块是命令行选项的解析器,其API设计为C getopt()函数的用户熟悉。不熟悉C getopt()函数的用户,或者希望编写更少代码并获得更好帮助和错误消息的用户应该考虑使用argparse模块。

+1

并以“老的Python版本”,他的意思是每一个发布8天以上版本前。 – 2010-07-13 06:21:16

+6

@Forest - 嘘,我们现在是未来! ;) – tzaman 2010-07-13 06:36:14

+3

随着时间的推移,这个答案变得越来越正确。 – jcdyer 2014-02-28 18:04:46

3

Python有内置的参数处理,与getopt模块。

它可以处理多种形式的参数以及“裸体”和参数化版本(--help--num=7)。

对于您的具体使用情况(多一点),你可能要寻找的东西,如:

opts,args = getopt.getopt(argv,"b:vVh",["block=", "verbose", "very-verbose", "help"]) 

我不知道把我的头顶部,如果它允许多字符单连字变体,如-vv。我只用-v-V自己让我的生活更轻松。

1

比链接一个更好的选择是模块OptParse或getopt的,并根据其Python版本您正在使用,最新的ones..2.7,和3.1.2,内置了一个更新模块。官方的python.org参考文档提供了一组非常丰富的文档和示例。如果您转到python.org,只需快速搜索OptParse或GetOpt,就可以获得所需的一切。

1

optfunc是一个有趣的小模块。如果你想快速写出一个小脚本,这太好了。对于更大的事情,我会与其他人写的argparse一起去。

-4

有可能是一个更好的办法,但我只想使用sys.argv中,放在任何地方条件语句需要即

if '--v' or '--vv' in sys.argv : 
    print 'verbose message'