小编典典

Python关于write()和truncate()的问题

python

我在Mac上的终端机中,正在学习如何打开,关闭,读取,删除文件。

当我设定

f = open("sample.txt", 'w')

然后点击f.truncate()内容删除。

但是,当我这样做时,f.write()它不会在文本文件中更新。它只会在我执行后更新f.truncate()

我想知道为什么会这样(我认为f.truncate()应该删除文本!)?为什么输入时文本编辑器不会自动更新f.write()


阅读 386

收藏
2021-01-20

共1个答案

小编典典

f.write()写入Python进程自己的缓冲区(类似于Cfwrite()函数)。但是,直到调用f.flush()f.close()或缓冲区填满时,数据才真正刷新到OS缓冲区中。完成此操作后,数据将对所有其他应用程序可见。

请注意,操作系统执行另一层缓冲/缓存-由所有正在运行的应用程序共享。刷新文件后,会将其写入这些缓冲区,但直到一段时间或调用时才将其写入
磁盘fsync()。如果您的操作系统崩溃或计算机断电,则这些未保存的更改将丢失。

2021-01-20