9得票3回答
如何捕获子进程的输入和输出?

我正在尝试编写一个程序,该程序以可执行文件名作为参数,运行可执行文件并报告该运行的输入和输出。例如,考虑一个名为“circle”的子程序。我的程序应如下所示: $ python3 capture_io.py ./circle Enter radius of circle: 10 Area:...

8得票1回答
为什么在执行某些命令后,Pexpect会间歇性地挂起(无法检测到EOF)?

上下文: 我有一些使用pexpect编写的代码,其作用是提供一个命令的“实时”输出。即在命令生成一些输出或之后,立即打印出来,而不是等待命令完成,然后与它的输出交互。 我所做的就是启动和停止一个服务。我通过spawn进程来实现这个目的,然后将每一行输出作为打印输出,像这样: def wa...

8得票2回答
如何确定由pexpect发送的命令的退出状态码

在下面的代码片段中,我该如何找到make命令的退出码?具体来说,我需要知道make是否失败或成功。感谢任何意见。 process = pexpect.spawn("/bin/bash") process.expect("make\r")

8得票1回答
如何在pexpect中使用paramiko?

我成功地使用paramiko打开了ssh连接。 由于我想在远程系统上自动交互,因此我想将paramiko连接传递给pexpect.fdpexpect.fdspawn,但这两者不兼容。 Paramiko给我提供了一个文件描述符,但是文档明确指出它不能用于读取或写入。我需要一个双向文件描述符来...

7得票3回答
pexpect setecho不起作用

我正在尝试使用pexpect telnet到Cisco路由器并发送命令。虽然setecho已经设置为False,但是sendline()的输出仍会重复。以下是代码: ''' Created on Nov 19, 2012 @author: Amit Barik ''' import pe...

7得票2回答
如何使用pexpect在Python中获取子进程的自发输出

这篇文章与我之前的另一篇文章(wx.TextCtrl(或底层GTK +)的多线程问题)有关。经过从主线程调用GUI交互的更正后,我发现再次遇到了管道阻塞缓冲区的问题。那么如何从子进程的stdout获得即时输出呢? 简而言之,我目前正在使用subprocess.popen启动一个外部长时间运行...

7得票2回答
使用pexpect时如何显式设置终端大小

我有一个ncurses应用程序,在启动时检查终端大小,如果不适合则立即退出。 在Linux中,默认大小为80x24,此应用程序需要至少25。修复很容易,我只需在运行ncurses应用程序之前调整终端仿真窗口(在X中)。 我想使用pexpect自动化ncurses应用程序,但我卡住了,因为当...

7得票5回答
Pexpect: 尝试生成第二个进程时,运行ssh-copy-id会挂起。

我正在编写一个Python脚本,需要启动多个ssh-copy-id进程,并且它们需要我输入密码,所以我使用了PExpect。 我的代码基本上是这样的: child = pexpect.spawn('command') child.expect('password:') child.send...

7得票1回答
打印和pexpect日志记录

我有一段使用pexpect控制进程和一些打印的代码。主要目标(在这个问题中)是将pexpect输出和打印记录到某个日志文件中。我遇到的问题是pexpect行(发送和接收的数据)与打印混杂在一起,没有明显的逻辑。我原本期望打印字符串和pexpect输出按照它们发布的顺序记录。 样例代码如下:...

7得票2回答
Python Pexpect发送控制键字符

我正在使用Python的pexpect模块自动化任务,我需要帮助找出在sendcontrol中使用的关键字符。如何发送控制键ENTER?以及以后如何找到关键字符? 这是我正在处理的代码。 #!/usr/bin/env python import pexpect id = pexpect...