当前位置: 首页 > article >正文

Python 中的 Pexpect

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


Python 中的 Pexpect

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

在这篇文章中,我们将研究Python中的pexpect。 Pexpect 是一个功能强大的库,用于创建子进程并自动控制它们。

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

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

我们可以使用它来组织安装脚本,以便在多个服务器上下载软件包。 Pexpect 是 Expect 系列交互式多线程命令行解释器的 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。

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

# python
import pexpect

print(pexpect.run('echo Hello World'))

输出:

Linux系统上的pexpect run方法

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

从上面的示例中需要注意的一件重要事情是,该命令适用于 Linux 系统,而不是 Windows。

Pexpect 中的 Spawn() 方法

现在我们将讨论 pexpect 的另一种方法,该方法可用于生成子进程并控制它们。 由于我们用命令行提示符替换了 run() 方法中的字符串,因此我们可以在 spawn() 中执行相同的操作,并使用它来执行 shell 命令并在执行后获取结果。

现在,让我们在示例中使用它,在该示例中我们将使用 spawn() 方法启动一个子进程。 我们将使用相同的场景来使用 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"]))

输出:

Linux系统上的pexpect spawn和expect方法

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

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


http://www.kler.cn/a/104822.html

相关文章:

  • 早安心语微语早读,能百毒不侵的人,都曾经伤痕累累过
  • asp.net乡村旅游管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 程序的编译和链接
  • 微信小程序设计之主体文件app-ts/js
  • Ubuntu20.04下安装MySQL8环境
  • java智慧工地云平台源码,以物联网、移动互联网技术为基础,结合大数据、云计算等,实现工程管理绿色化、数字化、精细化、智能化的效果
  • MySQL 8.2 – 透明的读写分离(译)
  • postgresql14管理(六)-备份恢复
  • 前端伪进度条实现(仿antd message使用react组件静态方法)
  • 举个栗子!Quick BI 技巧(3):创建趋势分析表
  • Mybit-Plus
  • WKWebView iOS17设置UserAgent
  • 编写虚拟UART驱动程序-框架
  • 童装服饰小程序商城的效果如何
  • Java SE 学习笔记(十三)—— 日志框架
  • Springboot之拦截器Interceptor
  • asyncio教程
  • 【目标检测】非极大值抑制NMS的原理与实现
  • C/C++输出整数 2020年9月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 记录nvm use node.js版本失败,出现报错: exit status 1: ��û���㹻��Ȩ��ִ�д˲�����