web-dev-qa-db-fra.com

Comment utiliser le sous-processus popen Python

Os.popen étant remplacé par subprocess.popen, je me demandais comment je convertirais

os.popen('swfdump /tmp/filename.swf/ -d')

to subprocess.popen ()

J'ai essayé:

subprocess.Popen("swfdump /tmp/filename.swf -d")
subprocess.Popen("swfdump %s -d" % (filename))  # NOTE: filename is a variable
                                                # containing /tmp/filename.swf

Mais je suppose que je n'écris pas correctement ceci. Toute aide serait appréciée. Merci

86
Stupid.Fat.Cat

subprocess.Popen prend une liste d'arguments:

from subprocess import Popen, PIPE

process = Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()

Il y a même une section de la documentation consacrée à aider les utilisateurs à migrer de os.popen à subprocess.

119
Blender

Utilisez sh , cela facilitera beaucoup les choses:

import sh
print sh.swfdump("/tmp/filename.swf", "-d")
9
amoffat