Можно ли предварительно ожидать каждого STDERR с заданной строкой - PullRequest
0 голосов
/ 02 марта 2012

Я пишу программу для взаимодействия с Linux-машиной через последовательный порт, и я использую pexpect.spawn в качестве основного канала связи следующим образом:

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

и отправляю команды намашина с методом sendline ("cmd"), и в конце каждого сеанса я анализирую файл журнала, чтобы посмотреть, как команды работают.

Я хотел бы иметь возможность различать строки, которые были напечатаны в stdout и stderr, из моего файла журнала, но в настоящее время у меня нет способа сделать это.Это способ глобально добавлять к каждой строке, напечатанной в stderr, заданную строку?

Ответы [ 2 ]

0 голосов
/ 02 марта 2012

Я думаю, что это ограничение pexpect. Вы в основном имеете дело с командной строкой черного ящика, поэтому pexpect не знает, является ли строка, возвращаемая в консоль (эффективно), stdout или stderr, просто что-то возвращалось. Можете ли вы смело предположить ограниченный набор форматов сообщений и ошибок в вашей системе, чтобы вы могли написать некоторый постпроцессор на основе регулярных выражений?

0 голосов
/ 02 марта 2012

Вы не упоминаете, как вы захватываете stdout и stderr, но один простой способ различить stdout и stderr - просто поместить stdout и stderr в разные файлы.Например:

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

...