我對文件緩衝區工作原理的瞭解相當薄弱,所以請原諒這個問題的簡單性。我有一段Python代碼,等待文件出現,然後讀取它。Python的open()是否讀取了一個未刷新的緩衝區?
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()'? –
在這種情況下,不,因爲我在這個小程序中的目標是檢查文件是否存在,並且是完整的。但是'f.read()'會解決我的問題嗎? (未刷新緩衝區的問題) – Gilead