standard stdout stdin stderr

standard - stdout javascript



Entendiendo stdin stdout stderr (2)

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de entender stdin stdout y stderr .

Los veo usados ​​en el código de las personas todo el tiempo y no puedo entender exactamente qué son. Supongo que tienen algo que ver con la entrada / salida, pero han estado buscando una explicación en línea y no pueden encontrarla. ¿Alguien sabe de un buen vínculo con una explicación o si es lo suficientemente simple como para explicar que sería una gran ayuda para mí?

Ya que estoy aprendiendo Python 3, sería útil tener ejemplos.


¿ this explica lo suficientemente bien?

sys.stdin
sys.stdout
sys.stderr
Objetos de archivo correspondientes a las entradas estándar de entrada, salida y error del intérprete.

stdin se usa para todas las entradas de intérpretes, excepto las secuencias de comandos, pero incluye llamadas a input () y raw_input ().

stdout se utiliza para la salida de declaraciones de impresión y expresión y para las indicaciones de input () y raw_input ().

Las propias indicaciones del intérprete y (casi todos) sus mensajes de error van a stderr.
stdout y stderr no necesitan ser objetos de archivo integrados: cualquier objeto es aceptable siempre que tenga un método write () que tome un argumento de cadena.
(El cambio de estos objetos no afecta a las secuencias de E / S estándar de los procesos ejecutados por os.popen (), os.system () o la familia de funciones exec * () en el módulo os).

Para clarificar

Si le digo al shell de python que haga una impresión:

print ''what is your name?''

"Cuál es tu nombre" irá a la salida stdout , sea lo que sea. Si no ha realizado ninguna redirección, por defecto es el terminal que está utilizando. Puede interactuar con las secuencias estándar de varias maneras diferentes, por ejemplo:

sys.stdout.flush()

Le dice al shell de Python que obligue a la información almacenada en búfer que imprimí a ir a la salida stdout inmediato.


sys.stdin sys.stdout sys.stderr

Objetos de archivo utilizados por el intérprete para entrada estándar, salida y errores:

  • stdin se utiliza para todas las entradas interactivas (incluidas las llamadas a input() );

  • stdout se usa para la salida de print() declaraciones de print() y expresión y para las indicaciones de input() ;

  • Las propias indicaciones del intérprete y sus mensajes de error van a stderr .

Para su mayor comprensión:

>>> import sys >>> for i in (sys.stdin, sys.stdout, sys.stderr): ... print i ... <open file ''<stdin>'', mode ''r'' at 0x103451150> <open file ''<stdout>'', mode ''w'' at 0x1034511e0> <open file ''<stderr>'', mode ''w'' at 0x103451270>

modo r significa lectura y modo w significa escritura