Я новичок в Python, пишу скрипт на Python (2.7), который должен выполнять несколько внешних приложений, одно из которых записывает много выходных данных в свой поток stderr.То, что я пытаюсь выяснить, - это краткий и лаконичный способ (в Python) получить последние N строк из выходного потока stderr этого подпроцесса.
В настоящее время я запускаю это внешнее приложение из моего скрипта Python, напримерИтак:
p = subprocess.Popen('/path/to/external-app.sh', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
if p.returncode != 0:
print "ERROR: External app did not complete successfully (error code is " + str(p.returncode) + ")"
print "Error/failure details: ", stderr
status = False
else:
status = True
Я хотел бы захватить последние N строк вывода из потока stderr, чтобы их можно было записать в файл журнала или отправить по электронной почте и т. д.