¿Cómo leer varias líneas de entrada sin formato?

Resuelto felix001 asked hace 12 años • 17 respuestas

Quiero crear un programa Python que acepte varias líneas de entrada del usuario. Por ejemplo:

This is a multilined input.
It has multiple sentences.
Each sentence is on a newline.

¿Cómo puedo recibir varias líneas de entrada sin procesar?

felix001 avatar Jul 26 '12 14:07 felix001
Aceptado
sentinel = '' # ends when this string is seen
for line in iter(input, sentinel):
    pass # do things here

Para obtener cada línea como una cadena, puedes hacer:

'\n'.join(iter(input, sentinel))

Pitón 2:

'\n'.join(iter(raw_input, sentinel))
jamylak avatar Jul 26 '2012 07:07 jamylak

Alternativamente, puedes intentar sys.stdin.read()que devuelva la entrada completa hasta EOF:

import sys
s = sys.stdin.read()
print(s)
Venkat avatar May 01 '2017 10:05 Venkat

Continúe leyendo líneas hasta que el usuario ingrese una línea vacía (o cambie stopworda otra cosa)

text = ""
stopword = ""
while True:
    line = raw_input()
    if line.strip() == stopword:
        break
    text += "%s\n" % line
print text
Junuxx avatar Jul 26 '2012 07:07 Junuxx