input()
создан для чтения только одной строки.Чтобы узнать больше, вам придется использовать input()
в цикле, но вам придется каким-то образом информировать цикл, когда текст закончен - например, вы можете поставить пустую строку после абзаца
lines = []
while True:
line = input()
if not line: # exit loop when empty line.
break
lines.append(line)
text = '\n'.join(lines)
print('>', text, '<')
Проблема может бытьесли у вас есть абзац с пустой строкой между другими строками.В Linux и, возможно, в Windows, в некоторых программах вы можете использовать Ctrl+D
, чтобы сообщить программе, что это конец файла, а затем она отправляет ошибку EOF (End Of File)
lines = []
while True:
try:
line = input() # press `Ctrl+D` to end of data
lines.append(line)
except EOFError:
break
text = '\n'.join(lines)
print('>', text, '<')
Используя sys.stdin.read()
, вы можетенапишите короче
import sys
try:
text = sys.stdin.read() # press `Ctrl+D` to end of data
except EOFError:
pass
print('>', text, '<')
Или, может быть, даже без try/except
import sys
text = sys.stdin.read() # press `Ctrl+D` to end of data
print('>', text, '<')
Должно работать также с текстом, перенаправленным из файла
python script.py < file_with_paragrph.txt