Подтвердить что ты не робот

Как читать несколько строк исходного ввода в Python?

Я хочу создать программу Python, которая принимает несколько строк ввода пользователя. Например:

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

Как я могу взять несколько строк исходного ввода?

4b9b3361

Ответ 1

sentinel = '' # ends when this string is seen
for line in iter(raw_input, sentinel):
    pass # do things here

Чтобы получить каждую строку в виде строки, которую вы можете сделать:

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

Python 3:

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

Ответ 2

Продолжайте читать строки, пока пользователь не войдет в пустую строку (или измените stopword на что-то еще)

text = ""
stopword = ""
while True:
    line = raw_input()
    if line.strip() == stopword:
        break
    text += "%s\n" % line
print text

Ответ 3

Кроме того, вы можете попробовать sys.stdin.read()

import sys
s = sys.stdin.read()
print(s)

Ответ 4

Просто расширив этот ответ fooobar.com/questions/136209/... вместо любого стоп-слова, вы можете просто проверить, есть ли строка или нет

content = []
while True:
    line = raw_input()
    if line:
        content.append(line)
    else:
        break

Вы получите строки в списке, а затем присоединитесь к \n, чтобы перейти в ваш формат.

print '\n'.join(content)

Ответ 5

Попробуй это

import sys

lines = sys.stdin.read().splitlines()

print(lines)

ВХОД:

1

2

3

4

ВЫХОД: ['1', '2', '3', '4']

Ответ 6

sys.stdin.read() может использоваться для получения многострочного ввода от пользователя. Например

>>> import sys
>>> data = sys.stdin.read()
  line one
  line two
  line three
  <<Ctrl+d>>
>>> for line in data.split(sep='\n'):
  print(line)

o/p:line one
    line two
    line three

Ответ 7

* Я долго боролся с этим вопросом, потому что хотел найти способ прочитать несколько строк пользовательского ввода без необходимости прерывать его с помощью Control D (или стоп-слова). В конце концов я нашел способ в Python3, используя модуль pyperclip (который вы должны будете установить с помощью установки pip). Ниже приведен пример, который принимает список IP-адресов *

import pyperclip

lines = 0

while True:
    lines = lines + 1 #counts iterations of the while loop.

    text = pyperclip.paste()
    linecount = text.count('\n')+1 #counts lines in clipboard content.

    if lines <= linecount: # aslong as the while loop hasn't iterated as many times as there are lines in the clipboard.
        ipaddress = input()
        print(ipaddress)

    else:
        break

Для меня это именно то, что я искал; взять несколько строк ввода, выполнить необходимые действия (здесь простая печать), а затем разорвать цикл, когда была обработана последняя строка. Надеюсь, это может быть одинаково полезно и для вас.