Добрый день!
Есть файл, внутри трафик (заголовок пакета + пакет) , читать файл с начала и нужным образом декодировать могу. Проблема в том что иногда мне не нужно читать весь файл, а вычитать диапазон байт, приходится читать файл с начала до места среза.
Например есть файл размером 12345 байт, мне надо вырезать из него отрезок с 1234 по 7890 байт.
Вот мой рабочий код, вопрос можно ли задавать срез?
begin_f = 1234
end_f = 7890
n = 0
with open(file, 'rb') as ifile:
while True:
one_byte = ifile.read(1) # думал делать размер чанка == (begin_f - 1), но плохо для больших файлов.
if n == begin_f:
with open(output_file, 'wb') as ofile:
data = one_byte + ifile.read(end_f - begin_f - 1)
ofile.write(data)
break
n += 1
В целом вопрос как скипать ненужный промежуток байт, чтобы читать с нужного момента? И можно ли читать файл с конца?
Благодарен за ответы и интересные примеры.