是否可以使用给定的字符串预先挂起每个STDERR

时间:2012-03-01 22:07:45

标签: python linux stdout stderr pexpect

我正在编写一个程序,通过串口与linux机器进行交互,我使用pexpect.spawn作为我的主要通信渠道,如下所示:

proc = pexpect.spawn("cu dir -l /dev/ttyUSB0 -s 115200", logfile = *someFile*)

我正在使用sendline(“cmd”)方法向机器发送命令,并在每个会话结束时解析日志文件以查看命令的行为方式。

我希望能够区分从我的日志文件中打印到stdout和stderr的行,但是目前我无法做到这一点。 这是一种使用给定字符串全局前置打印到stderr的每一行的方法吗?

2 个答案:

答案 0 :(得分:0)

您没有提到如何捕获stdout和stderr,但是区分stdout和stderr的一个简单方法是将stdout和stderr放在不同的文件中。例如:

./ command.py> stdout-log 2> stderr-log

答案 1 :(得分:0)

我认为这是对pexpect的限制。你基本上是处理黑盒子命令提示符,所以pexpect不知道返回控制台(有效)的字符串是stdout还是stderr,只是回来了。您是否可以安全地假设系统中有一组有限的消息和错误格式,以便您可以编写一些基于正则表达式的后处理器?