7
在我們的實驗中,我們通過python包h5py
將我們的數據存儲在hdf5
文件中。關閉打開的h5py數據文件
在實驗開始時,我們創建了一個hdf5
文件,並在文件中的數組數組(包括其他數組)之後創建存儲數組。當某個實驗失敗或中斷時,該文件未正確關閉。 由於我們的實驗從iPython
運行,對數據對象的引用保留在內存中的某處。
有沒有辦法掃描所有打開的h5py數據對象並關閉它們?
在我們的實驗中,我們通過python包h5py
將我們的數據存儲在hdf5
文件中。關閉打開的h5py數據文件
在實驗開始時,我們創建了一個hdf5
文件,並在文件中的數組數組(包括其他數組)之後創建存儲數組。當某個實驗失敗或中斷時,該文件未正確關閉。 由於我們的實驗從iPython
運行,對數據對象的引用保留在內存中的某處。
有沒有辦法掃描所有打開的h5py數據對象並關閉它們?
這是它如何做(我無法弄清楚如何檢查文件的封閉的煩躁不例外,也許你會發現):
import gc
for obj in gc.get_objects(): # Browse through ALL objects
if isinstance(obj, h5py.File): # Just HDF5 files
try:
obj.close()
except:
pass # Was already closed
另一個想法:
Dpending 如何使用這些文件,如何使用上下文管理器和with
這樣的關鍵字?
with h5py.File("some_path.h5") as f:
f["data1"] = some_data
當程序流退出與塊,文件被關閉,無論發生什麼情況,包括異常等有關「另一個想法」的信息
感謝。我只是在尋找確保我的h5py.Files結束與「與」 – zerocog