В C++ мы можем ввести несколько строк путем предоставления нашего собственного выбора символа-разделителя в getline () функция.. однако я не могу сделать то же в Python!! это имеет только raw_input () и sys.stdin.readline () методы, которые читают, пока я не нажимаю Enter. Там какой-либо путь состоит в том, чтобы настроить это так, чтобы я мог указать свой собственный разделитель?
Вы по-прежнему хотите нажимать клавишу ввода, чтобы создать несколько строк? Как закончить ввод? Или вы хотите указать несколько строк в одной строке?
В первом случае попробуйте выполнить цикл raw_input () до тех пор, пока не будет записано что-то, что говорит ему остановиться:
lines = []
while True:
user_input = raw_input()
if user_input.strip() == "": # empty line signals stop
break
lines.append(user_input)
Или указать несколько строк в одной строке с помощью разделителя:
lines = raw_input().split(";")
Вам придется реализовать такую функцию самостоятельно. Например:
def getline(stream, delimiter="\n"):
def _gen():
while 1:
line = stream.readline()
if delimiter in line:
yield line[0:line.index(delimiter)]
break
else:
yield line
return "".join(_gen())
import sys
getline(sys.stdin, ".")
Вы можете попробовать немного изменить этот метод, чтобы использовать его в своей программе.
Сначала импортируйте модуль линейного кэша:
import linecache
Модуль линейного кэша позволяет вам получить доступ к любой строке из любого файла. Из трех его методов чаще всего вы будете использовать getline. Синтаксис getline следующий:
linecache.getline('filename', line_number)
Если у вас есть файл с именем 'myfile.txt 'и хотел бы прочитать из него строку 138, getline позволяет это легко сделать.
retrieved_line = linecache.getline('myfile.txt', 138)
Затем вы можете просто напечатать retrieved_line или иным образом манипулировать данными строки 138, не выполняя никаких операций с самим файлом.