有没有人不得不“重新平衡”他们的Python文件寻求者?错误?

时间:2013-03-12 07:11:18

标签: python file-io

在一个非常讨厌的剧本中,我终于开始工作了,实际上我不得不重新平衡寻求者

f.seek(0, 1)

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

当然,我在写入之前和之后用f.tell()检查指针 - 相同!

我在这个脚本中使用Python 2.7.3。这可能是个错误吗?我觉得厌倦了使用它,好像......太奇怪了。

1 个答案:

答案 0 :(得分:2)

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

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

时,缓冲区的内容将写入文件
  • 缓冲区已满;或
  • 文件已关闭;或
  • f.flush()被召唤;或
  • f.seek()被召唤。

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