python - what - ¿Cómo itero sobre todas las líneas de archivos pasados en la línea de comandos?
framework django para python (5)
Algo como esto:
import sys
for line in sys.stdin:
# whatever
Normalmente hago esto en Perl:
lo que sea.pl
while(<>) {
#do whatever;
}
entonces cat foo.txt | whatever.pl
cat foo.txt | whatever.pl
Ahora, quiero hacer esto en Python. Intenté sys.stdin
pero no tengo idea de cómo hacerlo como lo he hecho en Perl. ¿Cómo puedo leer la entrada?
Odio golpear a un caballo muerto, pero ¿puedo sugerir usar una función pura?
import sys
def main(stdin):
for line in stdin:
print("You said: " + line.strip())
if __name__ == "__main__":
main(sys.stdin)
Este enfoque es bueno porque main depende únicamente de su entrada y puede probarlo con cualquier cosa que obedezca al paradigma de flujo de entrada delimitado por líneas.
Prueba esto:
import fileinput
for line in fileinput.input():
process(line)
import sys
for line in sys.stdin:
# do stuff w/line
import sys
def main():
for line in sys.stdin:
print line
if __name__==''__main__'':
sys.exit(main())