微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python-click 读取参数不正确将一个单词拆分为字母

如何解决python-click 读取参数不正确将一个单词拆分为字母

我有一个带有组的 click 应用程序,它应该采用 2 个必需参数和 2 个可选参数并将它们发送到行中,但由于某种原因在命令行中,click 将第一个参数拆分为单个字母。因此,点击看到的不是 api-keychain store test,而是 api-keychain store t e s t

命令行输出

>>> api-keychain store test test

<<< Usage: e [OPTIONS] APPLICATION KEY [EXPIRATION] [USERDATA]
<<< Try 'e --help' for help.
<<< 
<<< Error: Missing argument 'KEY'.

代码

@click.group()
def cli():
    pass

@cli.command(no_args_is_help=True)
@click.argument('application')
@click.argument('key')
@click.argument('expiration',required=False,default='1/1/9999')
@click.argument('userdata',default='{}')
def store(application,key,expiration,userdata):
    '''Stores APPLICATION,KEY,and optionally EXPIRATION,and USERDATA in a new key. Creates a keychain if one does not already exist.'''
    store(application,userdata)

解决方法

我找到了解决方案。我将活动函数命名为“store”,但也将我的 CLI 命令命名为“store”,因此它破坏了参数解析器。当我将应用程序函数重命名为“api_store”并重构代码时:

def store(application,key,expiration,userdata):
    '''Stores APPLICATION,KEY,and optionally EXPIRATION,and USERDATA in a new key. Creates a keychain if one does not already exist.'''
    api_store(application,userdata)

它解决了问题并开始正确解析。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。