Вы можете использовать memoryview
для выполнения работы.Например:
dest = bytearray(10) # all zero bytes
v = memoryview(dest)
ioObject.readinto(v[3:])
print(repr(dest))
Если предположить, что iObject.readinto(...)
читает байты 1, 2, 3, 4 и 5, то этот код печатает:
bytearray(b'\x00\x00\x00\x01\x02\x03\x04\x05\x00\x00')
Вы также можете использовать memoryview
объект с struct.unpack_from
и struct.pack_into
.Например:
dest = bytearray(10) # all zero bytes
v = memoryview(dest)
struct.pack_into("2c", v[3:5], 0, b'\x07', b'\x08')
print(repr(dest))
Этот код печатает
bytearray(b'\x00\x00\x00\x07\x08\x00\x00\x00\x00\x00')