python – 关闭一个打开的h5py数据文件
作者:互联网
在我们的实验室中,我们通过python包h5py将数据存储在hdf5文件中.
在实验开始时,我们创建一个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
另一个想法:
在讨论如何使用文件时,使用上下文管理器和with关键字如何?
with h5py.File("some_path.h5") as f:
f["data1"] = some_data
当程序流退出with-block时,无论发生什么情况,文件都会关闭,包括异常等.
标签:python,hdf5,ipython,h5py 来源: https://codeday.me/bug/20191005/1857649.html