【发布时间】:2011-10-13 21:32:34
【问题描述】:
我对文件缓冲区如何工作的知识相当薄弱,所以请原谅这个问题的简单性。我在 Python 中有一段代码等待文件出现,然后读取它。
while 1:
try:
f = open('file.txt')
f.close()
print "Message received."
break
except:
time.sleep(0.3)
其中file.txt 是另一个程序写入的文件。但是,我怀疑 Python 正在读取文件,然后在文件 file.txt 完全写入之前关闭句柄(也就是说,在我什至在写入文件的程序中调用 close() 之前)。这应该是可能的吗?
如果是这种情况,有没有办法在我调用f.close()之前检测(在上面列出的读取程序中)缓冲区是否已被刷新?
【问题讨论】:
-
在这种情况下,不,因为我在这个小程序中的目标是检查文件是否存在,并且是否已完全写入。但是
f.read()会解决我的问题吗? (未刷新缓冲区的问题)