How to use subprocess popen Python
subprocess.Popen
takes a list of arguments:
from subprocess import Popen, PIPEprocess = Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=PIPE, stderr=PIPE)stdout, stderr = process.communicate()
There's even a section of the documentation devoted to helping users migrate from os.popen
to subprocess
.
In the recent Python version, subprocess
has a big change. It offers a brand-new class Popen
to handle os.popen1|2|3|4
.
The new subprocess.Popen()
import subprocesssubprocess.Popen('ls -la', shell=True)
Its arguments:
subprocess.Popen(args, bufsize=0, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=False, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0)
Simply put, the new Popen
includes all the features which were split into 4 separate old popen
.
The old popen
:
Method Argumentspopen stdoutpopen2 stdin, stdoutpopen3 stdin, stdout, stderrpopen4 stdin, stdout and stderr
You could get more information in Stack Abuse - Robert Robinson. Thank him for his devotion.