giải nén từ chuỗi hoạt động:`struct.unpack_from` không hoạt động với` bytearray`?
>>> import struct
>>> struct.unpack('>h', 'ab')
(24930,)
>>> struct.unpack_from('>h', 'zabx', 1)
(24930,)
nhưng nếu nó một 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
Mà dường như một chút lẻ. Tôi thực sự phải làm gì với nó? rõ ràng là tôi có thể:
>>> struct.unpack_from('>h', str(bytearray('zabx')), 1)
(24930,)
Nhưng tôi dứt khoát cố gắng tránh sao chép một lượng lớn có thể là bộ nhớ xung quanh.
Bạn có thể sử dụng loại bộ đệm để tham chiếu đến chuỗi mà không chiếm nhiều bộ nhớ hơn, sau đó truyền tham số đó làm đối số. –