[python] 하위 프로세스 popen Python을 사용하는 방법

os.popen이 subprocess.popen으로 대체되었으므로 어떻게 변환해야할지 궁금합니다.

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

그러나 나는 이것을 제대로 작성하지 않고 있다고 생각합니다. 어떤 도움을 주시면 감사하겠습니다. 감사



답변

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.


답변

sh를 사용 하면 일이 훨씬 쉬워집니다.

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


답변

가장 쉬운 방법으로 Subprocess 사용 !!

import subprocess
cmd = 'pip install numpy'.split()  #replace with your command
subprocess.call(cmd)


답변