Ich habe die ersten zusammenhängenden 2/3 einer Datei, die mit zlib deflate() -Funktion komprimiert wurde. Das letzte 1/3 wurde in der Übertragung verloren. Die ursprüngliche unkomprimierte Datei war 600 KB.Wie man eine partielle ZLIB-Datei aufblähen
Deflate wurde mehrmals vom Sender aufgerufen, während die ursprüngliche Datei in Chunk-Größen von 2KB zerhackt wurde und Z_NO_FLUSH bis zum Ende der Datei übergeben wurde, wenn Z_FINISH übergeben wurde. Die resultierende vollständige komprimierte Datei wurde übertragen, ging jedoch teilweise wie beschrieben verloren.
Ist es möglich, einen Teil der ursprünglichen Datei wiederherzustellen? Wenn ja, irgendwelche Vorschläge wie?
Ich verwende sowohl die einfache C-Implementierung von ZLIB, und/oder die Python 2.7-Implementierung von ZLIB.
Danke, ja mit decompressobj() hat funktioniert. Ich benutzte einfach zlib.decompress() und es gab einen Fehler. Mit dc_obj = zlib.decompressobj() und decomp_data_str = dc_obj.decompress (orig_data_str) wurde das Problem gelöst. – JohnSantaFe