首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中,当每个选项可以有多个参数时,有没有更好的方法来处理命令行选项

在Python中,当每个选项可以有多个参数时,有没有更好的方法来处理命令行选项
EN

Stack Overflow用户
提问于 2011-07-22 10:58:44
回答 3查看 306关注 0票数 1

我有一个Python应用程序,如下所示:

代码语言:javascript
复制
$ app.py -a arg1 -a arg2 -b file1.b -b file2.b

根据选项的不同,在app.py中,我使用两个不同的函数来处理输入文件。因为每个选项可以有几个文件参数,所以我希望是这样的:

代码语言:javascript
复制
$ app.py -a arg1 arg2 -b *.b

在网上搜索后,我找到了这三个模块: getopt,argparse,optparse

我为我的应用程序写了一个简单的例子:

代码语言:javascript
复制
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)

我的问题是:有没有其他的模块或更好的方法来做到这一点?

EN

Stack Overflow用户

发布于 2011-07-22 11:29:35

如果你发现argparse太难入门了,因为它太复杂了,那么你可能会喜欢PyPi上的plac。它是一个围绕argparse的包装器,它隐藏了复杂性,并为您处理了大量样板参数检查。

它适用于Python2和Python3,并且有一个装饰器,允许Python2用户访问Python3函数参数的一个很好的特性。您甚至可以将命令相互嵌套,这样就可以在一个命令行上使用-arguments (以破折号开头)和.arguments (以点开头)。

这里是文档http://plac.googlecode.com/hg/doc/plac.html

票数 1
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6785194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档