в чем именно вопрос?Как использовать подпроцесс для выполнения команд оболочки?в этом случае некоторый упрощенный псевдокод может выглядеть следующим образом:
import subprocess
myProcess = subprocess.Popen( ['these', 'are', 'for', 'the', 'shell'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE )
[outStream, errStream] = myProcess.communicate()
, тогда вы можете делать все, что захотите, с standard out (outStream
) и делать разные вещи, если существует errStream
(standardошибка).это включает запись стандартной или стандартной ошибки в файл.тогда я предполагаю, что вы разошлись бы по этим файлам?
реальный пример кода (при условии, что у вас есть python 2.6+ в системе linux) может выглядеть так:
import subprocess
with open('dateHelp.log', 'w') as dateLog:
with open('dateHelp.err', 'w') as errLog:
dateHelp = subprocess.Popen([ 'date', '-h'], stdout=dateLog,
stderr=errLog)
dateHelp.communicate()