Sometimes, we want to use subprocess.Popen to connect multiple processes by pipes with Python.
In this article, we’ll look at how to use subprocess.Popen to connect multiple processes by pipes with Python.
How to use subprocess.Popen to connect multiple processes by pipes with Python?
To use subprocess.Popen to connect multiple processes by pipes with Python, we can use the subprocess.PIPE property.
For instance, we write
import subprocess
some_string = b'input_data'
sort_out = open('outfile.txt', 'wb', 0)
sort_in = subprocess.Popen('sort', stdin=subprocess.PIPE, stdout=sort_out).stdin
subprocess.Popen(['awk', '-f', 'script.awk'], stdout=sort_in,
stdin=subprocess.PIPE).communicate(some_string)
to pipe the sort_out file’s content to sort with subprocess.PIPE.
And then we pipe the result from sort to awk with subprocess.PIPE.
Conclusion
To use subprocess.Popen to connect multiple processes by pipes with Python, we can use the subprocess.PIPE property.