0

我正在创建一个程序,该程序存储每次程序在文本文件中的单独行中运行时的输入。我猜这是一个非常简单的解决方案,例如,如果我使用

Data = open("Data.txt", "w")
Data.write(Entry) 

它在第一行写入我的变量 Entry 的值,如果我使用 append 会做同样的事情,所以我怎么能告诉它把它写到当前空白的第 2 行/提前谢谢

4

2 回答 2

0

尝试这个

Data = open("Data.txt", "a")
Data.write("\n")
Data.write(Entry)
于 2020-06-29T22:25:27.243 回答
0

您以追加或 r+ 模式打开文件,然后寻找它的结尾。或者,您阅读文件的全部内容,添加您想要的内容,然后将所有内容全部写回。

f = open(..., "rb+")
f.seek(0, 2)
f.write(b"\nThis is a new line")
f.close()

顺便说一句,这条线甚至不需要存在。不要被文本编辑器显示文件的方式所迷惑。您将始终看到最后一行为空,以便您可以继续输入文本,这并不意味着空行已写入文件。这就是为什么我推荐 r+ 模式,您可以检查文件是否以 \n 或 \r 结尾,如果不是,请在添加行本身之前添加它。如果它已经有了它,只需编写文本。这样,如果有人在某个时候手动编辑了文件,您的脚本就不会出现空行。检查例如:

size = f.seek(0, 2) # Seek to end
if size>0:
    f.seek(size-1)
if f.read() in b"\r\n":
    pass
else: f.write(b"\n")
f.write(b"new line")
于 2020-06-29T22:26:56.447 回答