如何强制Python Click保持命令行参数的大小写?
问题:如何强制Click保持参数的大小写?
使用以下Click应用代码:
from rich.traceback import install install(show_locals=True) import click @click.command() @click.argument("PATH", envvar="PATH", nargs=-1, type=click.Path()) def f1(PATH): print(PATH) if __name__ == "__main__": f1()
运行时出现如下错误:
TypeError: f1() got an unexpected keyword argument 'path'
解决方案
Click默认会将参数名称转换为小写,所以定义的PATH参数会被转成path传递给函数,导致函数参数不匹配。要强制保持参数大小写,只需在@click.argument装饰器中添加case_sensitive=True参数即可。
修改后的代码如下:
from rich.traceback import install install(show_locals=True) import click @click.command() @click.argument("PATH", envvar="PATH", nargs=-1, type=click.Path(), case_sensitive=True) def f1(PATH): print(PATH) if __name__ == "__main__": f1()
添加该参数后,Click会保留参数的原始大小写,函数接收到的参数名就是PATH,不会再出现参数不匹配的错误。
内容的提问来源于stack exchange,提问作者syvlorg
相关产品推荐
相关产品推荐

