gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 10:59:33 25 4
gpt4 key购买 nike

我有一个这样的 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)

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

最佳答案

自 2012 年以来,Python 有一个简单、强大且非常酷的参数解析模块,名为 docopt。 .它适用于 Python 2.5 到 3.3,无需安装。这是您的特定案例的代码:

'''app.py

Usage:
app.py -a ARG ... -b FILE ...
app.py (-h | -v)

'''
from docopt import docopt
args = docopt(__doc__, version='1.0')
# now do something based on the value of args dict

就是这样:一行代码加上您的文档字符串, 必不可少。我告诉过你这很酷——不是吗 ;-)

关于python - 在 Python 中,当每个选项可以有多个参数时,是否有更好的方法来处理命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6785194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com