Удалить количество байтов из начала файла
Я хочу скопировать файл без первых 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)