问题标签 [pexpect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
589 浏览

python - pexpect 需要在不启动 bash shell 的情况下使用管道,因为 bash shell 不理解该命令

我想用 pexpect 做类似的事情

问题是我想将该命令输出到一个文本文件中,但我必须启动一个 shell,因为我们不能在 spawn() 中使用管道。bash shell 不理解 sysinfo -v 并抱怨它。

你们有什么想法或知道一种方法可以在不打开 bash 终端的情况下将所需的输出放入文件中吗?我可以通过只使用 spawn() 方法而不使用 grep 来解决问题,但我想要完全匹配,因此 grep 是必要的。

谢谢

0 投票
2 回答
9558 浏览

python - Pexpect 不遵守超时

pexpect 不适用于超时。

我如何让 pexpect 工作?

0 投票
1 回答
7483 浏览

python - 从 pexpect 捕获输出

我遇到了麻烦pexpect。我正在尝试获取tralics读取乳胶方程的输出并发出 MathML 表示,如下所示:

所以我尝试使用 pexpect 得到公式:

输出有公式,但开头是原始输入,最后是一些控制字符:

我可以清理输出字符串,但我必须缺少一些基本的东西。有没有更简洁的方法来获取 MathML?

0 投票
1 回答
7013 浏览

linux - 期望在 Linux 中向进程发送 KEY_DOWN 和 KEY_UP 事件

我想模拟嵌入式 linux 按键事件到我的 Qt GUI 应用程序。我主要想模拟 KEY_UP、KEY_DOWN、KEY_LEFT、KEY_RIGHT 和 KEY_F{1-2-3} 按键。我没有可用的 X。

这里有一个ASCII字符表:

而且我知道如何发送东西,比如 CNTRL-T,通过生成它并在我的期望脚本中发送以下内容来使用该表到我的应用程序:

我似乎找不到有关如何发送 KEY_ 的文档或示例?使用 Expect 的按键。我怎样才能使用 Expect 做到这一点?

如果不可能,是否有其他方法可以将按键发送到我的进程?我似乎无法将转义序列回显到 /dev/input/keypad ...

更新:

感谢您的评论。

我可以通过执行以下操作看到我的箭头键生成的输出:

我还可以看到infocmp xterm的输出为:

我已经在 Buildroot 的“menuconfig”(很像 Linux)程序上尝试了几个简单的转义序列,如下所示:

我想打开 menuconfig 并将光标向下移动一个位置。但是,即使我在其中有一个“交互”声明,它也会立即启动并退出。关于为什么的任何想法?谢谢 -

0 投票
1 回答
629 浏览

python - pexpect.run 无法运行长命令

pexpect.run用来执行命令。见下文:

当我运行它时,output等于:

但是当我在我的 shell 中运行相同的命令时,它每次都有效。我没有看到问题。任何帮助表示赞赏!pexpect.run是否需要以某种奇特的方式拆分命令?

0 投票
1 回答
398 浏览

python - 如果子进程发生系统时间更改,则预期超时错误

红帽Linux

我正在生成一个子进程,它是一个更新系统时间的 shell 脚本。我的超时时间为 30 分钟,如下所示。我的子进程与其他命令一起将系统时间提前 4 小时更新。当我执行以下这些行时,我得到的结果为 1。

如何让 pexpect 使用真正的计时器超时?

0 投票
3 回答
3173 浏览

python - pexpect 发送光标移动

如何使用 pexpect 发送光标移动,如上、下、左、右键。下面的示例是自动化 elinks,它使用 up/down 键来选择页面上的不同链接。

0 投票
1 回答
166 浏览

shell - pexpect 响应包括请求的回声

我以前使用过pexpectand sendline,但这次我使用管道通配符运行更长的命令,见下文:

我的具有 sendLine 函数的类看起来很像这样:

但是当我运行代码时,我看到它returnedString不仅包括响应,还包括请求。

所以如果我打印returnedString,它看起来像这样:

为什么响应将请求包含在同一个缓冲区中? 我已经设置setecho(False)了,它没有帮助!

编辑:(正确修复)我必须手动从响应中删除所有内容并删除请求。所以 setecho(False) 仍然什么都不做!

0 投票
2 回答
12342 浏览

python - Python Pexpect SSH 命令行登录参数

我正在使用 pexpect.py 脚本登录并获取主机名信息。
基本上我是这样运行的

您将在下面看到它是自动运行一些命令并关闭的。我希望能够在最后添加行,以便用户可以选择他们想要查看的信息。所以代替上面的命令行,它看起来像:

基本上是一个列表,其中 -x 是.. 说正常运行时间和 -z 是 ifconfig.. 还会有 -a、-b、-c。我迷失了如何在代码中添加这些参数:

0 投票
3 回答
2733 浏览

python - 如何在 pexpect 的日志文件中获取时间戳

我正在使用pexpect来处理我的 telnet 和 ssh 通信。我还在日志文件中写入所有请求/响应。使用pexpect.logfile(filename).

我也想在日志文件中有时间戳。我在文档中的任何地方都找不到它!有谁知道如何实现这个功能?