Как использовать подпроцесс popen Python
Так как os.popen заменяется на subprocess.popen, мне было интересно, как бы я преобразовал
os.popen('swfdump /tmp/filename.swf/ -d')
to subprocess.popen()
Я пробовал:
subprocess.Popen("swfdump /tmp/filename.swf -d")
subprocess.Popen("swfdump %s -d" % (filename)) # NOTE: filename is a variable
# containing /tmp/filename.swf
Но я предполагаю, что я не правильно это записал. Любая помощь будет оценена по достоинству. Благодаря
Ответы
Ответ 1
subprocess.Popen
принимает список аргументов:
from subprocess import Popen, PIPE
process = Popen(['swfdump', '/tmp/filename.swf', '-d'], stdout=PIPE, stderr=PIPE)
stdout, stderr = process.communicate()
Там даже раздел документации, посвященный помощи пользователям в миграции от os.popen
до subprocess
.
Ответ 2
Используйте sh, это упростит:
import sh
print sh.swfdump("/tmp/filename.swf", "-d")