当前位置: 首页 > 面试题库 >

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

宓诚
2023-03-14
问题内容

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

当我设定

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

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

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

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


问题答案:

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

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



 类似资料:
  • 主要内容:Python writelines()函数前面章节中学习了如何使用 read()、readline() 和 readlines() 这 3 个函数读取文件,如果我们想把一些数据保存到文件中,又该如何实现呢? Python 中的文件对象提供了 write() 函数,可以向文件中写入指定内容。该函数的语法格式如下: file.write(string) 其中,file 表示已经打开的文件对象;string 表示要写入文件的字符串(或字节串,仅

  • 想改进这个问题吗?更新问题,使其仅通过编辑这篇文章来关注一个问题。 刚开始学习java大约一个月,我对arraylist和oop有几个问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 问题内容: 我一直在思考环境变量,并有一些问题/观察。 此呼叫似乎存在致命缺陷。因为它不会复制传递的字符串,所以您不能使用本地调用它,并且不能保证分配给堆的字符串不会被覆盖或意外删除。此外(尽管我尚未测试过),因为环境变量的一种用法是将值传递给孩子的环境,如果孩子调用其中一个功能,这似乎毫无用处。我说错了吗? Linux手册页指示glibc 2.0-2.1.1放弃了上述行为,并开始复制字符串,但这

  • 本文向大家介绍关于Angular.js和Angular的问题相关面试题,主要包含被问及关于Angular.js和Angular的问题时的应答技巧和注意事项,需要的朋友参考一下 haizlin,你好,我想提一个建议。由于Angular和Angular.js是2个不同的框架,我建议要么将该Issue改为Angular面试题模版,要么新建一个Angular面试题模版。

  • 刚开始学习java大约一个月,我有几个关于arraylist和oop的问题 这个arraylist允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 问题内容: 常量INADDR_ANY是所谓的IPv4通配符地址。通配符IP地址对于在多宿主主机上绑定Internet域套接字的应用程序很有用。如果多宿主主机上的应用程序将套接字仅绑定到其主机的IP地址之一,则该套接字只能接收发送到该IP地址的UDP数据报或TCP连接请求。但是,我们通常希望多宿主主机上的应用程序能够接收指定主机IP地址的数据报或连接请求,并将套接字绑定到通配符IP地址可以实现这一点