Python: découper un très grand fichier binaire
disons que j'ai un fichier binaire de 12 Go et que je veux découper 8 Go au milieu. Je connais les indices de position que je veux couper entre.
comment je fais ça? Évidemment 12 Go ne rentrera pas dans la mémoire, c'est bien, mais 8 Go non plus... Ce que je pensais être bien, mais il semble binaire ne semble pas l'aimer si vous le faites en morceaux! J'ajoutais 10 Mo à la fois à un nouveau fichier binaire et il y a des discontinuités sur les bords de chaque morceau de 10 Mo dans le nouveau fichier.
y a-t-il une façon pythonique de faire cela facilement?
9
demandé sur
Jon Seigel
2010-03-02 16:47:17
1 réponses
Voici un exemple rapide. S'adapter selon les besoins:
def copypart(src,dest,start,length,bufsize=1024*1024):
with open(src,'rb') as f1:
f1.seek(start)
with open(dest,'wb') as f2:
while length:
chunk = min(bufsize,length)
data = f1.read(chunk)
f2.write(data)
length -= chunk
if __name__ == '__main__':
GIG = 2**30
copypart('test.bin','test2.bin',1*GIG,8*GIG)
8
répondu
Mark Tolonen
2015-03-10 20:10:13