hoverinfo - Supresión de la salida en la llamada de subproceso python
plotly layout (2)
Esta pregunta ya tiene una respuesta aquí:
Para el siguiente comando:
subprocess.call(shlex.split(
"""/usr/local/itms/bin/iTMSTransporter -m lookupMetadata
-apple_id %s -destination %s"""%(self.apple_id, self.destination))
Imprime toda la salida en la ventana de la Terminal. ¿Cómo suprimiría TODA la salida aquí? Intenté hacer subprocess.call(shlex.split(<command> > /dev/null 2&1
)), pero no produjo los resultados requeridos. ¿Cómo haría esto aquí?
Lo que funcionó para mí es agregar 2>/dev/null
al final del comando.
Puede usar los parámetros stdout=
y stderr=
para subprocess.call()
para dirigir stdout
o stderr
a un descriptor de archivo de su elección. Así que tal vez algo como esto:
import os
devnull = open(os.devnull, ''w'')
subprocess.call(shlex.split(
''/usr/local/itms/bin/iTMSTransporter -m lookupMetadata ''
''-apple_id %s -destination %s'' % (self,apple_id, self.destination)),
stdout=devnull, stderr=devnull)
El uso de subprocess.PIPE
, si no está leyendo desde la tubería, podría hacer que su programa se bloquee si genera una gran cantidad de salida.
Actualizar
Como @yanlend menciona en un comentario, las versiones más nuevas (3.x) de Python incluyen subprocess.DEVNULL
para resolver este problema de una manera más conveniente y portátil. En ese caso, el código se vería así:
subprocess.call(shlex.split(
''/usr/local/itms/bin/iTMSTransporter -m lookupMetadata ''
''-apple_id %s -destination %s'' % (self,apple_id, self.destination)),
stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)