如何在 docopt python 中只为参数设置特定值?
How to set only specific values for a parameter in docopt python?
我正在尝试将 docopt 用于 python 代码。我实际上只需要为参数设置特定值。我的用法如下:
"""
Usage:
test.py --list=(all|available)
Options:
list Choice to list devices (all / available)
"""
我试过 运行 它为: python test.py --list=all
但它不接受该值,只显示 docopt 字符串。
我希望列表参数的值为 'all' 或 'available'。有什么办法可以实现吗?
这里有一个例子可以实现你想要的:
test.py:
"""
Usage:
test.py list (all|available)
Options:
-h --help Show this screen.
--version Show version.
list Choice to list devices (all / available)
"""
from docopt import docopt
def list_devices(all_devices=True):
if all_devices:
print("Listing all devices...")
else:
print("Listing available devices...")
if __name__ == '__main__':
arguments = docopt(__doc__, version='test 1.0')
if arguments["list"]:
list_devices(arguments["all"])
使用此脚本,您可以 运行 语句,例如:
python test.py list all
或:
python test.py list available
我正在尝试将 docopt 用于 python 代码。我实际上只需要为参数设置特定值。我的用法如下:
"""
Usage:
test.py --list=(all|available)
Options:
list Choice to list devices (all / available)
"""
我试过 运行 它为: python test.py --list=all
但它不接受该值,只显示 docopt 字符串。
我希望列表参数的值为 'all' 或 'available'。有什么办法可以实现吗?
这里有一个例子可以实现你想要的:
test.py:
"""
Usage:
test.py list (all|available)
Options:
-h --help Show this screen.
--version Show version.
list Choice to list devices (all / available)
"""
from docopt import docopt
def list_devices(all_devices=True):
if all_devices:
print("Listing all devices...")
else:
print("Listing available devices...")
if __name__ == '__main__':
arguments = docopt(__doc__, version='test 1.0')
if arguments["list"]:
list_devices(arguments["all"])
使用此脚本,您可以 运行 语句,例如:
python test.py list all
或:
python test.py list available