Python字典太满还是别的什么?

Python字典太满还是别的什么?,python,dictionary,h5py,Python,Dictionary,H5py,我有大约1300个h5文件要用h5py分类到字典中。当我在大约250个文件上运行我的代码时,它工作正常,但任何较大的数量都会给我带来错误: Traceback (most recent call last): File "solution_script.py", line 31, in <module> File "build/bdist.macosx-10.7-intel/egg/h5py/_hl/files.py", line 165, in __init__

我有大约1300个h5文件要用h5py分类到字典中。当我在大约250个文件上运行我的代码时,它工作正常,但任何较大的数量都会给我带来错误:

  Traceback (most recent call last):
    File "solution_script.py", line 31, in <module>
    File "build/bdist.macosx-10.7-intel/egg/h5py/_hl/files.py", line 165, in __init__
    File "build/bdist.macosx-10.7-intel/egg/h5py/_hl/files.py", line 57, in make_fid
    File "h5f.pyx", line 70, in h5py.h5f.open (h5py/h5f.c:1626)
  IOError: unable to open file (File accessability: Unable to open file)'

如果您有任何帮助/建议/见解,我们将不胜感激:)

您可能需要在处理完文件后关闭这些文件,操作系统对您一次可以打开的文件数量有限制

在你打开h5文件的那一块的末尾,只要写一个结束语句,一切都会好起来。比如:

curh5file = h5py.File(file, 'r')
...do some stuff
curh5file.close()

您可能需要在处理完文件后关闭这些文件,操作系统中对一次可以打开的文件数量有限制

在你打开h5文件的那一块的末尾,只要写一个结束语句,一切都会好起来。比如:

curh5file = h5py.File(file, 'r')
...do some stuff
curh5file.close()

我同意@gradics的观点,如果可能的话,最好是关闭你没有积极使用的文件。但是,如果您确实必须这样做,您可以使用该命令来增加流程可用的打开文件的数量—有关详细信息,请参阅

编辑:

即使发生错误,您也可以使用以确保文件已关闭:

with h5py.File(file, 'r') as curh5file:
    ... # Do your stuff

... # continue other actions

当您退出“with”块时,文件将自动关闭。如果发生异常,它仍将被关闭。

我同意@爬行动物的观点,如果可能,最好是关闭您未积极使用的文件。但是,如果您确实必须这样做,您可以使用该命令来增加流程可用的打开文件的数量—有关详细信息,请参阅

编辑:

即使发生错误,您也可以使用以确保文件已关闭:

with h5py.File(file, 'r') as curh5file:
    ... # Do your stuff

... # continue other actions

当您退出“with”块时,文件将自动关闭。如果发生异常,它仍将关闭。

太好了!我会看看打开后关闭文件的效果。太好了!我将查看打开后关闭文件的功能。