2015-03-02 3 views
0

Я пытаюсь запустить следующий код (на python3.4):Как выполнить python Popen с помощью труб?

p1 = Popen(['screen', '-la'], stdout=PIPE) 
p2 = Popen(['tail', '-n', '+2'], stdin=p1.stdout, stdout=PIPE) 
p3 = Popen(['head', '-n', '-2'], stdin=p2.stdout, stdout=PIPE) 
p4 = Popen(['awk', '"{print $1}"'], stdin=p3.stdout, stdout=PIPE) 
p5 = Popen(['xargs', '-I{}', 'screen', '-S', '{}', '-X', 'quit'], stdin=p4.stdout, stdout=PIPE) 
p1.stdout.close() 
p2.stdout.close() 
p3.stdout.close() 
p4.stdout.close() 
out = p5.communicate[0] 
print(out) 

и я получаю сообщение об ошибке:

p5.communicate[0] 
TypeError: 'method' object is not subscriptable 

ответ

1

«общаться» является метод, а не свойство, вы можете попробовать это вместо этого:

out = p5.communicate()[0] 
+0

ahh ... спасибо – jonua

Смежные вопросы