¿Cómo leer varias líneas de entrada sin formato?
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?
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))
Alternativamente, puedes intentar sys.stdin.read()
que devuelva la entrada completa hasta EOF
:
import sys
s = sys.stdin.read()
print(s)
Continúe leyendo líneas hasta que el usuario ingrese una línea vacía (o cambie stopword
a otra cosa)
text = ""
stopword = ""
while True:
line = raw_input()
if line.strip() == stopword:
break
text += "%s\n" % line
print text