考虑到调用后我仍然可以访问延迟加载的数据,Dataset.close实际上有什么作用?

问题描述

根据文档,xarray.Dataset.close 关闭与该对象链接的所有文件。但是以下示例成功,除非手动关闭fp:

import xarray
fn = "/data/gholl/cache/fogtools/abi/2017/03/14/20/06/7/OR_ABI-L1b-RadF-M3C07_G16_s20170732006100_e20170732016478_c20170732016514.nc"
fp = open(fn,"rb")
ds = xarray.open_dataset(fp)
ds.close()
# fp.close()
print(ds["Rad"][400:402,300:302].load())

无论我将 fn 还是 fp 传递给open_dataset,都会成功。当我通过将chunks=1024传递给open_dataset来懒惰地加载数据时,行为是相同的。查看源代码,看起来好像close指令已传递到后端。那么,当关闭基础文件并且直到请求时才访问数据时,最后一行如何工作?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)