ylab hoverinfo python subprocess stdout

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)