Cómo leer desde la entrada estándar en Python

Hay tres formas de leer datos desde stdin en Python.

  1. entrada estándar del sistema
  2. función incorporada input()
  3. Función fileinput.input()

1. Uso de sys.stdin para leer desde la entrada estándar

El módulo sys stdin de Python es utilizado por el intérprete para la entrada estándar. Internamente, llama a la función input(). La cadena de entrada se agrega con un carácter de nueva línea (n) al final. Por lo tanto, puede utilizar la función rstrip() para eliminarla. Aquí hay un programa simple para leer mensajes de usuario desde la entrada estándar y procesarlos. El programa finalizará cuando el usuario ingrese el mensaje “Exit”.

import sysfor line in sys.stdin:    if 'Exit' == line.rstrip():        break    print(f'Processing Message from sys.stdin *****{line}*****')print("Done")

Producción:

HiProcessing Message from sys.stdin *****Hi*****HelloProcessing Message from sys.stdin *****Hello*****ExitDone

Observe el uso de rstrip() para eliminar el carácter de nueva línea final para que podamos verificar si el usuario ingresó el mensaje “Salir” o no.

2. Uso de la función input() para leer datos de entrada estándar

También podemos usar la función input() de Python para leer los datos de entrada estándar. También podemos enviar un mensaje al usuario. Aquí hay un ejemplo simple para leer y procesar el mensaje de entrada estándar en el bucle infinito, a menos que el usuario ingrese el mensaje de salida.

while True:    data = input("Please enter the message:n")    if 'Exit' == data:        break    print(f'Processing Message from input() *****{data}*****')print("Done")

Producción:

La función input() no agrega un carácter de nueva línea al mensaje del usuario.

3. Lectura de la entrada estándar mediante el módulo fileinput

También podemos usar fileinput.input()la función para leer desde la entrada estándar. El módulo fileinput proporciona funciones de utilidad para recorrer la entrada estándar o una lista de archivos. Cuando no proporcionamos ningún argumento a la función input(), lee los argumentos desde la entrada estándar. Esta función funciona de la misma manera que sys.stdin y agrega un carácter de nueva línea al final de los datos ingresados ​​por el usuario.

import fileinputfor fileinput_line in fileinput.input():    if 'Exit' == fileinput_line.rstrip():        break    print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')print("Done")

Producción:

SUSCRÍBETE A NUESTRO BOLETÍN 
No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio