如何使用子进程popen Python

2022-01-18 00:00:00 python subprocess popen

问题描述

由于 os.popensubprocess.popen 取代,我想知道如何转换

Since os.popen is being replaced by subprocess.popen, I was wondering how would I convert

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

subprocess.popen()

我试过了:

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

但我想我没有正确地写出来.任何帮助,将不胜感激.谢谢

But I guess I'm not properly writing this out. Any help would be appreciated. Thanks


解决方案

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.

There's even a section of the documentation devoted to helping users migrate from os.popen to subprocess.

相关文章