How do I write to a Python subprocess’ stdin?

It might be better to use communicate: from subprocess import Popen, PIPE, STDOUT p = Popen([‘myapp’], stdout=PIPE, stdin=PIPE, stderr=PIPE) stdout_data = p.communicate(input=”data_to_write”)[0] “Better”, because of this warning: Use communicate() rather than .stdin.write, .stdout.read or .stderr.read to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.