Python:输入保存多行字符串

问题描述 投票:0回答:1
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()

仅获得第一行。

有什么想法吗?

python-3.x multiline
1个回答
0
投票

您正在循环中设置line,因此每次迭代都将下一行覆盖所述行。您需要将行中的行累加到列表中(在while True之前创建),以便跟踪所有这些,然后循环写入文件。另外,您还需要在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')
© www.soinside.com 2019 - 2024. All rights reserved.