0

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

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

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

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

4

2 回答 2

0

您没有提到如何捕获标准输出和标准错误,但区分标准输出和标准错误的一种简单方法是将标准输出和标准错误简单地放在不同的文件中。例如:

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

于 2012-03-01T22:11:34.153 回答
0

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

于 2012-03-01T22:32:22.600 回答