Ich versuche, Werte aus vielen HDF5-Dateien zu pflücken und in einer Liste zu speichern.Wie schließt man eine Datei innerhalb eines Python-Listenverständnisses?
import h5py
h = [h5py.File('filenum_%s.h5' % (n),'r')['key'][10][10] for n in range(100)]
Diese Liste Verständnis enthält die Werte am Gitterpunkt (10, 10) in dem 'Schlüssel' Array aus den HDF5 Dateien filenum0.h5
- filenum99.h5
.
Es funktioniert, außer, dass es mit dem Fehler um das 50. Element stoppt:
IOError: unable to open file (File accessibilty: Unable to open file)
obwohl ich weiß, dass die Datei vorhanden ist und kann geöffnet werden, wenn ich nicht viele andere Dateien geöffnet haben. Ich denke, ich bekomme den Fehler, weil zu viele Dateien geöffnet wurden.
Gibt es eine Möglichkeit, die Dateien innerhalb dieses Listenverständnisses zu schließen? Oder gibt es eine effektivere Möglichkeit, die gewünschte Liste zu erstellen?
Sie können nicht, Sie wären mit einer traditionellen Schleife besser dran. – jonrsharpe
Siehe diesen Beitrag https://StackOverflow.com/A/45929510/4531270 – pylang