How to get multiline input from user

MaciejPL picture MaciejPL · May 14, 2015 · Viewed 175.8k times · Source

I want to write a program that gets multiple line input and work with it line by line. Why there is no function like raw_input in Python 3?

input does not allow user to put lines separated by newline (Enter), it prints back only the first line.

Can it be stored in variable or even read it to a list?

Answer

xiaket picture xiaket · Jul 6, 2016

raw_input can correctly handle the EOF, so we can write a loop, read till we have received an EOF (Ctrl-D) from user:

Python 3

print("Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it.")
contents = []
while True:
    try:
        line = input()
    except EOFError:
        break
    contents.append(line)

Python 2

print "Enter/Paste your content. Ctrl-D or Ctrl-Z ( windows ) to save it."
contents = []
while True:
    try:
        line = raw_input("")
    except EOFError:
        break
    contents.append(line)