¿Cómo leo desde stdin?

Resuelto tehryan asked hace 14 años • 0 respuestas

¿Cómo leo desde stdin? Algunos desafíos de golf con códigostdin requieren su uso como entrada.

tehryan avatar Sep 20 '09 12:09 tehryan
Aceptado

Utilice el fileinputmódulo:

import fileinput

for line in fileinput.input():
    pass

fileinputrecorrerá todas las líneas de la entrada especificada como nombres de archivo proporcionados en los argumentos de la línea de comandos, o la entrada estándar si no se proporcionan argumentos.

Nota: linecontendrá una nueva línea al final; para eliminarlo utilice line.rstrip().

u0b34a0f6ae avatar Sep 21 '2009 13:09 u0b34a0f6ae

Hay algunas maneras de hacerlo.

  • sys.stdines un objeto similar a un archivo en el que puedes llamar funciones reado readlinessi quieres leer todo o quieres leer todo y dividirlo automáticamente por nueva línea. (Es necesario import syspara que esto funcione).

  • Si desea solicitar información al usuario, puede usarlo raw_inputen Python 2.X y solo inputen Python 3.

  • Si realmente sólo desea leer las opciones de la línea de comandos, puede acceder a ellas a través de la lista sys.argv .

Probablemente este artículo de Wikibook sobre E/S en Python también le resulte una referencia útil.

Mark Rushakoff avatar Sep 20 '2009 05:09 Mark Rushakoff
import sys

for line in sys.stdin:
    print(line)

Tenga en cuenta que esto incluirá un carácter de nueva línea al final. Para eliminar la nueva línea al final, use line.rstrip()como dijo @brittohalloran.

user303110 avatar Jul 20 '2010 10:07 user303110

Python también tiene funciones integradas input()y raw_input(). Consulte la documentación de Python en Funciones integradas .

Por ejemplo,

name = raw_input("Enter your name: ")   # Python 2.x

o

name = input("Enter your name: ")   # Python 3
Pat Notz avatar Mar 03 '2011 19:03 Pat Notz

Aquí es de Aprendiendo Python :

import sys
data = sys.stdin.readlines()
print "Counted", len(data), "lines."

En Unix, puedes probarlo haciendo algo como:

% cat countlines.py | python countlines.py 
Counted 3 lines.

En Windows o DOS, harías:

C:\> type countlines.py | python countlines.py 
Counted 3 lines.
Eugene Yokota avatar Sep 20 '2009 05:09 Eugene Yokota