How to use subprocess popen Python How to use subprocess popen Python python python

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.


Use sh, it'll make things a lot easier:

import shprint sh.swfdump("/tmp/filename.swf", "-d")


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.