Rozpakowanie z ciągów działa:`struct.unpack_from` nie działa z` bytearray`?
>>> import struct
>>> struct.unpack('>h', 'ab')
(24930,)
>>> struct.unpack_from('>h', 'zabx', 1)
(24930,)
ale jeśli jego bytearray
:
>>> struct.unpack_from('>h', bytearray('zabx'), 1)
Traceback (most recent call last):
File "<ipython-input-4-d58338aafb82>", line 1, in <module>
struct.unpack_from('>h', bytearray('zabx'), 1)
TypeError: unpack_from() argument 1 must be string or read-only buffer, not bytearray
co wydaje się trochę dziwne. Co właściwie mam z tym zrobić? oczywiście mogłem:
>>> struct.unpack_from('>h', str(bytearray('zabx')), 1)
(24930,)
ale jestem wyraźnie stara się unikaćkopiowania możliwie dużej ilości pamięci wokół.
Możesz użyć typu bufora, aby odnieść się do łańcucha bez zajmowania większej ilości pamięci, a następnie przekazać go jako argument. –