这个答案表明optparse适用于较旧的Python版本.对于Python 2.7及更高版本,argparse取代了optparse.有关更多信息,请参见this answer.
正如其他人所指出的那样,你最好选择optparse而不是getopt. getopt几乎是标准getopt(3)C库函数的一对一映射,并不是很容易使用.
optparse虽然有点冗长,但结构更好,后期更容易扩展.
这是向解析器添加选项的典型行:
parser.add_option("-q", "--query",
action="store", dest="query",
help="query string", default="spam")
它几乎说明了自己;在处理时,它将接受-q或–query作为选项,将参数存储在名为query的属性中,如果不指定它,则具有默认值.它也是自我记录的,你可以使用该选项声明help参数(在使用-h / – help运行时将使用它).
通常你用以下方法解析你的参数:
options, args = parser.parse_args()
默认情况下,这将解析传递给脚本的标准参数(sys.argv [1:])
然后将options.query设置为您传递给脚本的值.
您只需通过执行即可创建解析器
parser = optparse.OptionParser()
这些都是您需要的基础知识.这是一个完整的Python脚本,显示了这一点:
import optparse
parser = optparse.OptionParser()
parser.add_option("-q", "--query",
action="store", dest="query",
help="query string", default="spam")
options, args = parser.parse_args()
print "Query string:", options.query
5行python,向您展示基础知识.
将其保存在sample.py中,然后运行一次
python sample.py
和一次
python sample.py --query myquery
除此之外,您会发现optparse非常容易扩展.
在我的一个项目中,我创建了一个Command类,它允许您轻松地在命令树中嵌套子命令.它大量使用optparse将命令链接在一起.这不是我能用几行简单解释的东西,但对于主要课程,以及a class that uses it and the option parser可以免费获得browse around in my repository