Перезаписать бинарный файл частями

имеется большой файл, его нужно перезаписать в новый файл по частям

f = open('archive.rar', 'rb')
while True:
    piece = f.read(512*1024)
    if not piece:
        break
    with open('new_archive.rar', "wb") as fOut:
        data = bytearray(piece)
        #do something
        fOut.write(data)
f.close()

Скрипт записывает первые 66kb и прекращает работу.

Как частями перезаписать в новый файл полностью?


Ответы (1 шт):

Автор решения: Johan

Попробуйте вот так, должно получиться:

f = open('archive.rar', 'rb')
data = f.read(512*1024)
while True:
    piece = f.read(512*1024)
    if not piece:
        break
    else:
        data = data + piece
with open(f'new_archive.rar', "wb") as fOut:
    fOut.write(data)
f.close()
→ Ссылка