Something like
port.write(struct.pack('<cii', 'd', address, length)
d = port.read(1) #'d' expected
data = port.read(length) #length bytes of data expected
if d != 'd' or len(data) < length:
raise Exception("Bad response received")
where <
specifies little-endian byte order, c
is a single char and i
is a 32-bit int.