单击.参数不会为缺少的参数引发Error



我有一个CLI工具,其中一个命令中有click.argument

最初,我有这样的:

@click.argument(
'file',
type=click.Path(exists=True),
)

如果我没有在命令中添加file参数,它过去会抛出这样的错误:

Error: Missing argument 'FILE'.

现在,我添加了这样的nargs=-1,增加了具有无限数量参数的可能性:

@click.argument(
'file',
nargs=-1,
type=click.Path(exists=True),
)

现在,如果我不传递file参数,就不会得到上面的错误消息。

我可能缺少什么?

既然您已经确定您的参数可以接受无限数量的输入,那么您也可以接受没有输入的可能性。

根据Variadic函数的文档,这些值是作为元组传递的。您可能收到一个空元组,这不会导致错误。

在文档中,有一节是关于非空变分参数的。这是使用required=True支持的功能,但不推荐使用。引用文件:

原因是,脚本通常使用命令行中的通配符输入进行调用,如果通配符为空,则脚本不应出错。

无论如何,下面是一个片段,应该可以解决您的问题。

@click.argument(
'file',
nargs=-1,
type=click.Path(exists=True),
required=True
)

最新更新