Удалить количество байтов из начала файла

Я хочу скопировать файл без первых 256 байтов.

Есть хороший способ сделать это в Python?

Я предполагаю, что самый простой способ - прочитать байты со счетчиком, а затем начать копирование только тогда, когда оно достигнет 256.

Я надеялся на более элегантный способ.

Благодарю.

3 ответа

Решение
f = open('filename.ext', 'rb')
f.seek(255) # skip the first 255 bytes
rest = f.read() # read rest
with open('input', 'rb') as in_file:
    with open('output', 'wb') as out_file:
        out_file.write(in_file.read()[256:])

Использование seek чтобы пропустить первые 256 байтов, затем скопируйте файл порциями, чтобы избежать чтения всего входного файла в память. Кроме того, обязательно используйте with чтобы файл закрылся правильно:

with open('input.dat', 'rb') as inFile:
    inFile.seek(256)
    with open('output.dat', 'wb') as outFile:
        for chunk in iter(lambda: inFile.read(16384), ''):
            outFile.write(chunk)
Другие вопросы по тегам