在 docopt 中包含多个参数列表
including more than one list of arguments with docopt
我将 python 应用程序用作命令行工具,功能 docopt library。使用该库很容易实现命令。
但是,目前我找不到实现以下要求的方法:
文档字符串是:
"""
aTXT tool
Usage:
aTXT <source>... [--ext <ext>...]
Options:
--ext message
"""
来自shell,我想这样写:
atxt a b c --ext e f g
docopt 输出的结果字典如下:
{'--ext': True,
'<ext>': [],
'<source>': ['a', 'b', 'c', 'e', 'f']}
但是,我需要具备以下条件:
{'--ext': True,
'<ext>': ['e', 'f', 'g'],
'<source>': ['a', 'b', 'c']}
我该如何继续?
我还没有找到将列表直接传递到 Docopt 参数字典的方法。但是,我找到了一个解决方案,允许我将一个字符串传递给 Docopt,然后将该字符串转换为一个列表。
你的 Docopt doc 有问题,我修改了它们以便我可以测试针对你的案例的解决方案。此代码是在 Python 3.4 .
中编写的
命令行:
$python3 gitHubTest.py a,b,c -e 'e,f,g'
gitHubTest.py
"""
aTXT tool
Usage:
aTXT.py [options] (<source>)
Options:
-e ext, --extension=ext message
"""
from docopt import docopt
def main(args) :
if args['--extension'] != None:
extensions = args['--extension'].rsplit(sep=',')
print (extensions)
if __name__ == '__main__':
args = docopt(__doc__, version='1.00')
print (args)
main(args)
returns :
{
'--extension': 'e,f,g',
'<source>': 'a,b,c'
}
['e', 'f', 'g']
在 main() 中创建的变量 'extensions' 现在是您希望传入的列表。
我将 python 应用程序用作命令行工具,功能 docopt library。使用该库很容易实现命令。 但是,目前我找不到实现以下要求的方法:
文档字符串是:
"""
aTXT tool
Usage:
aTXT <source>... [--ext <ext>...]
Options:
--ext message
"""
来自shell,我想这样写:
atxt a b c --ext e f g
docopt 输出的结果字典如下:
{'--ext': True,
'<ext>': [],
'<source>': ['a', 'b', 'c', 'e', 'f']}
但是,我需要具备以下条件:
{'--ext': True,
'<ext>': ['e', 'f', 'g'],
'<source>': ['a', 'b', 'c']}
我该如何继续?
我还没有找到将列表直接传递到 Docopt 参数字典的方法。但是,我找到了一个解决方案,允许我将一个字符串传递给 Docopt,然后将该字符串转换为一个列表。
你的 Docopt doc 有问题,我修改了它们以便我可以测试针对你的案例的解决方案。此代码是在 Python 3.4 .
中编写的命令行:
$python3 gitHubTest.py a,b,c -e 'e,f,g'
gitHubTest.py
"""
aTXT tool
Usage:
aTXT.py [options] (<source>)
Options:
-e ext, --extension=ext message
"""
from docopt import docopt
def main(args) :
if args['--extension'] != None:
extensions = args['--extension'].rsplit(sep=',')
print (extensions)
if __name__ == '__main__':
args = docopt(__doc__, version='1.00')
print (args)
main(args)
returns :
{
'--extension': 'e,f,g',
'<source>': 'a,b,c'
}
['e', 'f', 'g']
在 main() 中创建的变量 'extensions' 现在是您希望传入的列表。