standard - stdout javascript
Entendiendo stdin stdout stderr (2)
Esta pregunta ya tiene una respuesta aquí:
- ¿Confundido sobre stdin, stdout y stderr? 10 respuestas
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 ainput()
);stdout
se usa para la salida deprint()
declaraciones deprint()
y expresión y para las indicaciones deinput()
;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