我有一个Python应用程序,如下所示:
$ app.py -a arg1 -a arg2 -b file1.b -b file2.b根据选项的不同,在app.py中,我使用两个不同的函数来处理输入文件。因为每个选项可以有几个文件参数,所以我希望是这样的:
$ app.py -a arg1 arg2 -b *.b在网上搜索后,我找到了这三个模块: getopt,argparse,optparse
我为我的应用程序写了一个简单的例子:
optionDict= {'-a':aFunction, '-b':bFunction}
for arg in sys.argv[1:]:
if arg in optionDict: # arg is an option here.
funcName = optionDict[arg]
else: # arg is not an option, then it's a fileName. Deal with this file with the function found according to previous arg.
funcName(arg)我的问题是:有没有其他的模块或更好的方法来做到这一点?
发布于 2011-07-22 11:29:35
如果你发现argparse太难入门了,因为它太复杂了,那么你可能会喜欢PyPi上的plac。它是一个围绕argparse的包装器,它隐藏了复杂性,并为您处理了大量样板参数检查。
它适用于Python2和Python3,并且有一个装饰器,允许Python2用户访问Python3函数参数的一个很好的特性。您甚至可以将命令相互嵌套,这样就可以在一个命令行上使用-arguments (以破折号开头)和.arguments (以点开头)。
这里是文档http://plac.googlecode.com/hg/doc/plac.html
https://stackoverflow.com/questions/6785194
复制相似问题