click-shell 是一个建在标准 cmd 库之上的python库。它是用于构建命令行应用程序的单击库的扩展。这些命令行应用程序是使用命令行接口(CLI)从用户接收命令的程序。这些命令是文本的形式,它们用于指示计算机执行特定任务。关于命令行应用程序的一件事是,它们没有图形用户界面(GUI),它只是具有某些背景的控制台,并提示用户输入命令。您是否曾经想过像 git 这样的流行命令行应用程序是如何工作的?如果您很好奇并且想知道它是如何工作的,并且您喜欢构建自己的命令行应用程序的想法,那么本教程适合您。
这些是我们将要介绍的:
- 安装 click-shell 库
- 创建外壳
- 将命令添加到shell
- 获得高级
- 结论
安装点击壳库
要使用 click-shell 库您需要在计算机上安装它,请在终端中输入此命令:
$ pip install click-shell
创建外壳
现在我们已经安装了 click-shell ,让我们创建一个新的python文件,并将其称为 automation_shell.py 。使它看起来像这样:
from click_shell import shell
message = """
Welcome to Ninja Shell!!!Please enter a command below.
"""
# creating the shell
@shell(prompt='ninjashell/>', intro=message)
def my_shell():
pass
# executing the shell
if __name__ == '__main__':
my_shell()
在代码中,我们正在从 shell 中导入 click_shell ,然后我们创建了一个将成为Shell热情消息的字符串。
要创建 shell ,请使用 @shell() 装饰器,该装饰器采用提示和 intro 作为参数,这两种论点是字符串。
在Shell的定义之后,在内部使用A Pass 语句创建其函数,最后,我们正在执行 If block内部的功能。
向外壳添加命令
让我们将第一个命令添加到 shell 中,此命令只会打印一个Hello Word文本。为此,在 shell 粘贴此代码下方:
# adding a command to print hello world message
@my_shell.command() # adds a shell’s command
def hello_world():
print("Hello World!")
要向
运行程序,使用:
$ python automation_shell.py
确保您获得此输出:
输入 hello-world 命令,输出将是:
The click-shell library handles so much under the hood, like exception handling and keeping the shell running even when an error occurs and it has some inbuilt commands like the 退出命令。
尝试输入不存在的命令,您将得到:
先进
现在,我们将修改 shell 来执行有意义的任务,例如列出可用的 shell 命令,打印当前日期和时间并创建文件。打开文件并用此代码替换当前代码:
from click_shell import shell
from datetime import datetime
message = """
Welcome to Ninja Shell!!!Please enter a command below. If you want to
see a list of all the available commands, enter "help".
"""
# creating the shell
@shell(prompt='ninjashell/>', intro=message)
def my_shell():
pass
# adding command to the shell to list available commands
@my_shell.command()
def help(): # the command will be help
print(
"""Here is a list of all commands:
*******************************
help: List all the available commands
date-time: Prints current date and time
create-file: Creates a new file and write to it
exit: Exits the shell
"""
)
@my_shell.command()
def date_time(): # the command will be date-time
now = datetime.now().strftime("%d/%m/%Y %H:%M:%S") # getting the formatted current date and time
print(f"The current date&time is: {now}")
@my_shell.command()
def create_file(): # the command will be create-file
filename = input("Enter the file name and extension:") # getting the filename from user
content = input("Enter the file content:") # getting the file contents from user
# creating the new file, opening it in write mode
with open(filename, "w") as f:
f.write(content) # writing content to the file
# executing the shell
if __name__ == '__main__':
my_shell()
要在同一页面上,让我们做一些代码分解。此代码与以前的代码没有什么不同,在这里我们有一些添加。
我们已经导入 datetime 库,扩展了消息字符串,并添加了3个命令, help> help> , date time 创建文件。
帮助命令将列出 shell 的所有可用命令最后, create-file 命令将帮助用户创建基本文件。
运行程序并输入帮助命令以获取此输出:
如果您输入日期时间命令,则会得到此:
要创建一个文件,请输入 create-file 命令:
您将在当前工作目录中找到文件:
使用此内容:
结论
是的,极客!!!希望您能从这篇文章中学到很多东西。请记住,您可以使用 click-shell 做很多事情。我只向您展示了您可以在这篇文章中使用库做的几件事。但是,您可以通过构建高级命令行应用程序来加倍努力。谢谢阅读!!!!并在评论部分让我知道您如何从这篇文章中受益。