Python中的Pexpect

我们将通过示例介绍Python中的Pexpect

Python中的Pexpect

Python是一种非常流行的语言,用于数据科学和机器学习。它是一种非常强大的语言,因为Python有内置的库,可以用于不同的目的。

在本文中,我们将学习Python中的pexpectPexpect是一个强大的库,用于创建子进程并自动控制它们。

它可以测试漏洞或执行我们能想到的任何任务。

大多数情况下,它可以用于测试系统的用例,以检查它在某些任务下的工作方式以及系统在这些任务下的表现如何。我们还可以使用它来自动化我们日常生活中的一些小任务。

我们可以使用它来组织安装脚本,以便在多个服务器上下载软件包。PexpectExpect系列交互式多线程命令行解释器的Python接口。

Pexpect是一个库,用于通过网络连接在远程机器上生成网络程序。

它通常用于编写网络服务脚本,如SSH或Telnet。它对于独立的派生程序也很有用。

现在让我们在我们正在开发的软件中安装pexpect。在Python中安装pexpect最简单的方法是使用pip包管理器。

我们可以使用以下命令安装它。

# python
pip install pexpect

如果您没有安装pip,可以使用以下命令安装。

# python
pip install python-pip

Python中的Pexpect方法

现在,让我们讨论如何在应用程序中使用pexpect。在我们的应用程序中,我们可以通过三种不同的方法使用pexpect

我们将讨论的第一个方法是run()方法。

Pexpect中的Run()方法

Run()pexpect的一个强大的方法,可用于执行命令并返回从该命令接收的结果。这个方法取代了另一个强大的库方法os.system

现在,让我们使用这个方法来使用Hello World命令打印echo。首先,我们将导入pexpect库,然后,我们将使用run()方法,如下所示。

# python
import pexpect
print(pexpect.run('echo Hello World'))

输出:

 

Python中的Pexpect

 

从上面的例子中可以看到,我们的方法使用run()pexpect方法执行了Python文件中的命令行代码。

从上面的例子中需要注意的一点是,这个命令将在Linux系统上工作,而不是在Windows上。

Pexpect中的Spawn()方法

现在我们将讨论pexpect的另一个方法,它可以用来产生子进程并控制它们。当我们用命令行提示符替换了run()方法中的字符串时,我们可以在spawn()中做同样的事情,并使用它来执行shell命令并在执行后获得结果。

现在,让我们在我们的示例中使用它,我们将使用spawn()方法启动一个子进程。我们将使用相同的场景来echo使用spawn的字符串。

之后,我们将向expect()方法发送一个数组,以从数组中的字符串匹配上面的命令,并返回与我们的命令匹配的元素位置,如下所示。

# python
import pexpect
childProcess = pexpect.spawn("echo Hello World")
# prints he matched index of string.
print(childProcess.expect(["Python", "Hello World", "Child Process"]))

输出:

 

Python中的Pexpect

 

从上面的例子中可以看出,字符串在数组中的位置是第二个,数组从0开始,所以它输出正确的位置。

在本文中,我们讨论了pexpect的三种方法,它们可以用于执行不同的功能,它们可以一起使用,使其成为一个大函数,如上一个示例所示。