Debo aclarar varios puntos:
Código:
>>> tmpout = tempfile.NamedTemporaryFile(mode='w+'); #No termina con punto y coma
Ahora subprocess.(STDOUT | STDIN | STDERR | PIPE) son flags en otras palabras no son las que enteros.
Usa ppn.communicate() en su lugar.
Ejemplo:
Código:
from subprocess import STDOUT, PIPE, Popen
from tempfile import NamedTemporaryFile
command = "ls"
tmpout = NamedTemporaryFile(mode='w+')
p = Popen(command, stdout=PIPE, stderr=PIPE, shell=True)
pstdout, pstderr = p.communicate()
tmpout.write(pstdout)
tmpout.seek(0) #Regresamos al principio del archivo
tmpout.read()