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

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允许我将字符串添加到列表中并存储它,但是如果我有一个类调用簿呢 这三者有什么区别?假设我有大量的输入,比如文件 我有一个班级运动 我该怎么做呢?所以我用许多参数来添加这些输入,因为如果我想添加,我通常会这样做 我也会去

  • 问题内容: 这是来自Zed Shaw的Python教程的练习16。在这种情况下,我很难理解该功能的确切作用。因此逻辑是我们打开一个文件,然后…将其缩短?为了什么?这里到底发生了什么? 问题答案: 保持可疑是对的。 首先,这样做: 截断文件的大小。如果存在可选的 size 参数,则文件将被截断为(最多)该大小。尺寸默认为当前位置… 与Zed的描述不太相同- 仅在当前位置是文件的开头时才“清空文件”,