Python: сохранение входной многострочной строки - PullRequest
0 голосов
/ 05 февраля 2020
while True:
try:
    line = input("paste:")
except EOFError:
    break

f = open("notam_new.txt", "w+")
f.write(line)
f.close()

Этот код возвращает только последнюю строку многострочного текста после Ctrl + D

Я также пытался:

notam = input("paste new notam: ")

f = open("notam_new.txt", "w+")
f.write(notam)
f.close()

, получая только первую строку.

Есть идеи?

1 Ответ

0 голосов
/ 05 февраля 2020

Вы устанавливаете line в al oop, поэтому при каждой итерации вы просто перезаписываете указанную строку следующей. Вам нужно накапливать свои строки в списке (создан до while True), чтобы вы могли отслеживать их все, а затем записывать в файл в al oop. Кроме того, вам также нужно добавить символ новой строки, когда input() удаляет его.

lines = []
while True:
    try:
        lines.append(input("paste:"))
    except EOFError:
        break

with open("notam_new.txt", "w+") as f:
    for line in lines:
        f.write(line)
        f.write('\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...