Я здесь впервые, поэтому, пожалуйста, потерпите меня.Я работаю над некоторым кодом на 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)
Мне пришлось смириться с этим, извините, если я пропустил некоторые опечатки!