Python: потоковый ввод stdin
В общем (классическом) виде чтение с помощью stdin производится следующим образом:
import sys
for line in sys.stdin:
# rstrip('\n') "отрезает" от строки line идущий справа символ
# перевода строки, ведь print сам переводит строку
print(line.rstrip('\n'))
Если запустить эту программу, она будет работать вечно. Чтобы показать, что ввод закончен, пользователю недостаточно нажать Enter - компьютер не знает, завершил пользователь работу или будет еще что-то вводить (при этом Enter превратится в пустую строку). Вместо этого надо нажать Ctrl + D (если работаете в консоли Linux или IDE PyCharm) либо Ctrl + Z, затем Enter (если работаете в консоли Windows).
Если вы работаете в IDE Wing, кликните правой кнопкой мыши и выберите Send EOF, затем нажмите Enter. Это запишет в поток ввода специальный символ EOF (end of file), который отмечает конец ввода.
Через sys.stdin можно вычитать всё, что попадает через ввод в список (количество строк ввода заранее неизвестно):
data = list(map(str.strip, sys.stdin))
Все строки можно считать (с сохранением символов перевода строки) в список вот таким образом:
data = sys.stdin.readlines()
Cчитать многострочный текст из стандартного потока ввода в текстовую переменную можно вот так:
str_data = sys.stdin.read()