Asked By – jath03
I’m new to the
subprocess module and the documentation leaves me wondering what the difference is between
subprocess.run. Is there a difference in what the command does? Is one just newer? Which is better to use?
Now we will see solution for issue: What is the difference between subprocess.popen and subprocess.run
subprocess.run() was added in Python 3.5 as a simplification over
subprocess.Popen when you just want to execute a command and wait until it finishes, but you don’t want to do anything else in the mean time. For other cases, you still need to use
The main difference is that
subprocess.run() executes a command and waits for it to finish, while with
subprocess.Popen you can continue doing your stuff while the process finishes and then just repeatedly call
Popen.communicate() yourself to pass and receive data to your process. Secondly,
subprocess.run() just wraps
Popen.communicate() so you don’t need to make a loop to pass/receive data or wait for the process to finish.
Check the official documentation for info on which params
subprocess.run() pass to