这可能很简单,但我一直无法在线找到解决方案......我正在尝试使用一系列存储为 netcdf 文件的数据集。我打开每个文件,读入一些关键点,然后转到下一个文件。我发现我经常遇到 mmap 错误/脚本随着读取更多文件而变慢。我相信这可能是因为 netcdf 文件没有被 .close() 命令正确关闭。
我一直在测试这个:
from scipy.io.netcdf import netcdf_file as ncfile
f=ncfile(netcdf_file,mode='r')
f.close()
Run Code Online (Sandbox Code Playgroud)
那么如果我尝试
>>>f
<scipy.io.netcdf.netcdf_file object at 0x24d29e10>
Run Code Online (Sandbox Code Playgroud)
和
>>>f.variables['temperature'][:]
array([ 1234.68034431, 1387.43136567, 1528.35794546, ..., 3393.91061952,
3378.2844357 , 3433.06715226])
Run Code Online (Sandbox Code Playgroud)
所以看起来文件仍然打开?close() 实际上是做什么的?我怎么知道它起作用了?有没有办法从python关闭/清除所有打开的文件?
软件:Python 2.7.6、scipy 0.13.2、netcdf 4.0.1