Python用了两次read(),为什么只显示第一次读取的文本内容


with open("D:\MYPython\Data2.txt","r+",encoding="utf-8") as f:
    print(f.read())
    f.write("起舞弄清影\n何似在人间")
    content = f.read()
    print(content)

我原来文本里有内容:
我欲乘风归去
又恐琼楼玉宇
高处不胜寒

现在我首先读取了一次,在写入后面两句词,我再用f.read()去读取,结果只显示第一次读取的文本内容,而不显示我写入的新内容后的,第二次的读取内容。

img

因为写完的数据还在内存中,没有刷到磁盘,改成这样:

with open("Data2.txt", "r+", encoding="utf-8") as f:
    print(f.read())
    f.write("起舞弄清影\n何似在人间")
    f.flush()
    content = f.read()
    print(content)

有帮助的话,请点采纳~