Ваш вопрос и сопровождающий его псевдокод, на мой взгляд, несколько туманны, но здесь есть кое-что, что использует кусочки buf
для получения каждой необходимой группы из 4 байтов - так что, если ничего другого, то это как минимум немного более кратко (если предположить, чтоЯ правильно истолковал то, что вы спрашиваете):
import io
import struct
outfile = io.BytesIO()
outfile.writelines([b'\x00\x01\x02\x03',
b'\x04\x05\x06\x07'])
buf = outfile.getvalue()
for i in range(0, len(buf), 4):
data = struct.unpack('<l', buf[i:i+4])[0]
print(hex(data))
Вывод:
0x3020100
0x7060504