Ich arbeite derzeit an einem Projekt zur Komprimierung von HDF5-Datensätzen und vor kurzem begann mit h5py. Ich habe die grundlegenden Tutorials verfolgt und konnte eine Datei öffnen, erstellen und komprimieren, während sie erstellt wurde. Ich war jedoch erfolglos, wenn es darum ging, eine existierende Datei zu komprimieren (was das Ziel meiner Arbeit ist).Komprimierung der vorhandenen Datei mit h5py
Ich habe versucht, Dateien mit 'r +' zu öffnen und dann Chunked-Datasets zu komprimieren, aber die Dateigrößen sind gleich geblieben.
Irgendwelche Vorschläge, welche Befehle zu verwenden sind oder gehe ich die Dinge in die falsche Richtung?
Ja ich habe genau das versucht, allerdings scheint es nur für mich beim Erstellen einer neuen Datei zu funktionieren. Ich kann eine neue Datei mit Chunk-Größe (100,100) erstellen, bei der die gzip/szip/lzf-Komprimierung aktiviert ist. Wenn ich eine vorhandene Datei lade, funktioniert die Komprimierung scheinbar nur dann, wenn der Inhalt der ursprünglichen Datei überschrieben wird und eine neue Datei erstellt wird (mit demselben Namen wie das Original). Wenn ich eine Datei laden, ein Chunked-Dataset erstellen, die Komprimierung aktivieren und dann die Datei schließe, scheint es keinerlei Auswirkungen oder Änderungen zu geben. Ich habe das Gefühl, dass ich einen Schritt verpasse, nicht sicher, was es ist. – kromegaman
@Kromegaman Kompression und Chunk-Größe sind Richtlinien, wie die Datei auf die Festplatte geschrieben wird. Ich denke nicht, dass das etwas ist, das man für eine bestehende Datei ändern kann, wie es bereits geschrieben ist. Ich denke, die einzige Möglichkeit, die Komprimierung/Chunks zu ändern, besteht darin, eine neue Datei mit diesen Einstellungen zu schreiben. – Bitwise
Ja, je mehr ich es benutze, desto mehr scheint es so zu sein. Ich denke, ich muss eine neue Datei und ein neues Dataset erstellen, die Daten aus der vorhandenen Datei in die neue Datei kopieren und dann die neue Datei komprimieren, während ich sie erstelle. Trotzdem, vielen Dank für die Hilfe! – kromegaman