Löschen von hdf5-Datensatz mit h5py

Gibt es eine Möglichkeit, einen Datensatz aus einer hdf5-Datei zu entfernen, vorzugsweise mit h5py? Oder alternativ ist es möglich, einen Datensatz zu überschreiben, während die anderen Datensätze intakt bleiben?

Zu meinem Verständnis kann ich hdf5-Dateien in 5 Modi lesen / schreiben

f = h5py.File("filename.hdf5",'mode') 

Wo Modus kann r für das Lesen, r+ für read-write, a für read-write, sondern erstellt eine neue Datei, wenn es nicht existiert, w für schreiben / überschreiben, und w- was ist selbe wie w aber fehlschlägt, wenn Datei bereits Existiert Ich habe alles versucht, aber keiner scheint zu arbeiten.

Irgendwelche Vorschläge sind sehr geschätzt.

    2 Solutions collect form web for “Löschen von hdf5-Datensatz mit h5py”

    Ja, das kann man machen.

     with h5py.File(input, "a") as f: f.__delitem__(datasetname) 

    Sie müssen die Datei in einem beschreibbaren Modus öffnen, zum Beispiel anhängen (wie oben) oder schreiben.

    AKTUALISIEREN:

    Wie von @ seppo-enarvi erwähnt, ist der Zweck der __delitem__ Funktion, den del Operator zu implementieren, damit man einen Datensatz mit del f[datasetname] löschen kann

    Ich verstehe nicht, was hat Ihre Frage mit der Datei öffnen Modi zu tun. Für lesen / schreiben r + ist der Weg zu gehen.

    Meines Wissens ist das Entfernen nicht einfach / möglich, insbesondere egal was du die Dateigröße machst, wird nicht schrumpfen.

    Aber das Überschreiben von Inhalten ist kein Problem

     f['mydataset'][:] = 0 
    Python ist die beste Programmiersprache der Welt.