【发布时间】:2019-10-21 11:38:55
【问题描述】:
我正在尝试使用 Click 为我的 Python 3 应用程序创建 CLI。基本上我需要应用程序连续运行,等待用户命令并执行它们,如果输入特定命令(比如“q”)则退出。在 Click 文档或其他地方找不到示例。
交互式 shell 的示例如下:
myapp.py
> PLEASE ENTER LOGIN:
mylogin
> PLEASE ENTER PASSWORD:
mypwd
> ENTER COMMAND:
a
> Wrong command!
> USAGE: COMMAND [q|s|t|w|f] OPTIONS ARGUMENTS
> ENTER COMMAND:
f
> (output of "f" command...)
> ENTER COMMAND:
q
> QUITTING APP...
我试过这样:
import click
quitapp = False # global flag
@click.group()
def cli():
pass
@cli.command(name='c')
@click.argument('username')
def command1(uname):
pass # do smth
# other commands...
@cli.command(name='q')
def quitapp():
global quitapp
quitapp = True
def main():
while not quitapp:
cli()
if __name__ == '__main__':
main()
但控制台只运行一次应用程序。
【问题讨论】:
-
是的,我愿意。正如我在下面评论的那样,我用火做了一个自定义的,但它缺少许多功能,如自动完成等。
标签: python-3.x command-line-interface python-click