Несколько подпроцессов Python - PullRequest
0 голосов
/ 26 апреля 2018

Я здесь впервые, поэтому, пожалуйста, потерпите меня.Я работаю над некоторым кодом на Python и у меня возникают проблемы с одним блоком, в частности, поэтому я опубликую свой код из тестового сценария, над которым я работал.Я даже использовал операторы print debugger, чтобы выяснить, что не так, и кажется, что 3-й канал не получает стандартный вывод от 2-го, хотя 2-й канал выводит вывод.Если я закомментирую output3 и использую output2, файл будет создан и заполнен, но как только я добавлю output3, файл будет полностью пустым.Любая помощь очень ценится!

#!/usr/bin/python

import subprocess

try:
  output = subprocess.Popen(['ps', 'ax'], stdout=subprocess.PIPE)
  output2 = subprocess.Popen(['egrep', '/usr/'], stdin=output.stdout, stdout=subprocess.PIPE); output.stdout.close()
  output3 = subprocess.Popen(['egrep', '"sbin|lib"'], stdin=output2.stdout, stdout=subprocess.PIPE); output2.stdout.close()
  with output3.stdout, open('some file name', 'ab') as file:
    for line in iter(output3.stdout.readline, b''):
      file.write(line)

except OSError as message:
  print "Display bad things {}!".format(message)

Мне пришлось смириться с этим, извините, если я пропустил некоторые опечатки!

...