gpt4 book ai didi

python - 仅当给出可选部分时,Docopt 才会继续

转载 作者:行者123 更新时间:2023-12-01 02:37:18 25 4
gpt4 key购买 nike

我正在尝试学习 python docopt 模块并拥有以下简单脚本:

""" Usage:
rsnapshot-once [-c CFGFILE] (sync|hourly|daily|monthly)

-c CFGFILE specify the configfile that rsnapshot should use
"""

import logging
import sys

from docopt import docopt

args = docopt(__doc__, version='0.0.1-alpha')

logging.basicConfig(stream=sys.stdout, level=logging.DEBUG, formatter=logging.BASIC_FORMAT)
logging.debug("Parsed arguments:\n" + str(args));

if not args.get("-c"):
args['CFGFILE'] = "/etc/rsnapshot.conf"

当使用 -c 选项从命令行调用时:

% ./rsnapshot-once.py -c someconfigfile sync                                                                
DEBUG:root:Parsed arguments:
{'-c': True,
'CFGFILE': 'someconfigfile',
'daily': False,
'hourly': False,
'monthly': False,
'sync': True}

仅传递命令时:

% ./rsnapshot-once.py daily                                                                               
Usage:
rsnapshot-once [-c CFGFILE] (sync|hourly|daily|monthly)

看来我误会了什么。谁能给我一个提示,我做错了什么?

谢谢

最佳答案

您给出的示例在这里有效。所以可能与您使用的 docopt 版本有关。关于符号,您几乎走在正确的轨道上,只是缺少一些小细节。

在选项之前,应该有一行“选项:”。 Docopt 会查找这一点,并解释后面的行。在选项部分也可以设置选项的默认值。

这是一个例子:

"""Usage:
rsnapshot-once [-c CFGFILE] (sync|hourly|daily|monthly)

Options:
-c CFGFILE specify the configfile that rsnapshot should use
[default: /etc/rsnapshot.conf]
"""

然后用户还将看到默认值是什么。

关于python - 仅当给出可选部分时,Docopt 才会继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46084887/

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