tarro de salida de la tubería de archivo en Python

Adam_G:

Estoy corriendo un archivo jar de Python usando algo a este

import subprocess
subprocess.call(['java', '-jar', 'tool.jar'])

Entonces yo desea guardar el resultado en un archivo, pero el problema es que el código de Java original tiene la salida de ser enviado a System.err.println(output). Me encanta para modificar el archivo de Java original, pero esto no es una opción.

¿Cómo puedo enviar esta salida a un archivo? Yo he tratado:

subprocess.call(['java', '-jar', 'chattool.jar', '>', 'out.txt', '2','>','err.txt'])

tanto como

subprocess.call(['java', '-jar', 'chattool.jar', '&>', 'test.txt'])

pero ninguno de los dos vuelve a dirigir la salida. ¿Es posible hacer esto dentro de pitón?

Maurice Meyer:

Puede stdout tubería / stderr en un archivo usando Popen () :

_stdout = open('/tmp/chattool.stdout.txt', 'w')
_stderr = open('/tmp/chattool.stderr.txt', 'w')

cmd = subprocess.Popen('java -jar chattool.jar', stderr=_stderr, stdout=_stdout, cwd=_cwd, shell=True)
cmd.communicate() 

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=363966&siteId=1
Recomendado
Clasificación