Angenommen, ich habe eine binäre Datei von 12 GB und ich möchte 8GB aus der Mitte davon schneiden. Ich kenne die Positionsindizes, zwischen denen ich schneiden möchte.Python: eine sehr große Binärdatei schneiden
Wie mache ich das? Offensichtlich passen 12GB nicht in den Speicher, das ist in Ordnung, aber 8GB wird auch nicht ... Was ich dachte, war in Ordnung, aber es scheint Binär scheint es nicht zu mögen, wenn Sie es in Stücke tun! Ich habe 10 MB auf einmal an eine neue Binärdatei angehängt und es gibt Diskontinuitäten an den Rändern jedes 10MB Chunks in der neuen Datei.
Gibt es eine pythonische Art, dies leicht zu tun?
Ich habe etwas sehr ähnlich, als dies und es schien nicht, es zu mögen, mit binären, wenn Sie einen Block von Daten aus der Mitte herausziehen kann es nicht manchmal Chaos an den Rändern nach oben wie es seine umgebenden Bytes benötigt, um Sinn zu ergeben? Hmm. Ich werde deinen Code ausprobieren, aber prost. Hast du auch deine Länge und Puffer in der letzten Zeile deines Codes falsch herum gepuffert? –
Das ist Start und Länge ... die letzte Zeile verwendet den Standardwert für bufsize. Ich bin mir nicht sicher, was Sie mit "Durcheinander an den Rändern" meinen. Wenn Sie umgebende Bytes benötigen, sind Start und Länge möglicherweise falsch? –
Sie sind richtig! Ich hatte mich selbst vermasselt, alles funktioniert jetzt :) Was ist eine optimale Puffergröße für die Dateiübertragung? 1 MB gut? –