Menu Close

How to write to a Python subprocess’ stdin?

Sometimes, we want to write to a Python subprocess’ stdin.

In this article, we’ll look at how to write to a Python subprocess’ stdin.

How to write to a Python subprocess’ stdin?

To write to a Python subprocess’ stdin, we can use the communicate method.

For instance, we write

from subprocess import Popen, PIPE, STDOUT

p = Popen(['myapp'], stdout=PIPE, stdin=PIPE, stderr=PIPE)
stdout_data = p.communicate(input='data_to_write')[0]

to call Popen with the command we want to run in a list.

And we set stdout , stdin, and stderr all to PIPE to pipe them to their default locations.

Next, we call p.communicate with the input argument set to the string we want to write to stdin.

Conclusion

To write to a Python subprocess’ stdin, we can use the communicate method.

Posted in Python, Python Answers