1

在我终于开始工作的一个非常讨厌的脚本中,我实际上不得不重新平衡搜索器

f.seek(0, 1)

在 f.write() 函数会写出任何“卡住”的东西之前。我的意思是我尝试了很多方法来解决这个问题,但唯一有效的是上面的简单行。

自然,我在写入前后用 f.tell() 检查了指针 - 完全相同!

我为此脚本使用 Python 2.7.3。这可能是一个错误吗?我对使用它感到厌倦,因为它看起来……嗯……太奇怪了。

4

1 回答 1

2

听起来确实很奇怪。想到的唯一解释是您没有考虑缓冲的影响。

具体来说,当您向文件写入内容时,首先将其写入内部缓冲区。当缓冲区的内容写入文件时

  • 缓冲区已满;或者
  • 文件已关闭;或者
  • f.flush()叫做; 或者
  • f.seek()叫做。

因此,如果您在向文件写入一些数据之后但在上述任何事情发生之前检查文件的内容,您通常不会看到新写入的数据。

于 2013-03-12T07:21:11.937 回答