从JavaScript FileReader API发送的BinaryString在Python中解包
我正在尝试在我的Python应用程序中解包一个通过JavaScript的FileReader的readAsBinaryString方法发送的二进制字符串。看起来我可以使用struct模块来实现这个功能。不过,我不太确定该如何准确地提供解包的格式。
有人能确认这是正确的方法吗?如果是的话,我应该指定什么格式呢?
根据JavaScript的文档:
结果将包含文件的数据,作为一个二进制字符串。每个字节都用一个范围在[0..255]之间的整数表示。
1 个回答
3
听起来你手上只有一个普通的字符串(或者在Python 3中是bytes
对象),所以我不太确定你需要解包什么。
访问字节数据的一种方法是使用bytearray
;这样你可以很方便地索引字节数据:
>>> your_data = b'\x00\x12abc'
>>> b = bytearray(your_data)
>>> b[0]
0
>>> b[1]
18
如果你有的是字符串,不想使用bytearray(这需要Python 2.6或更高版本),那么可以用ord
把字符转换成整数。
>>> ord(your_data[1])
18
如果你的二进制数据有特定的解释,比如一组字节代表整数或浮点数,并且有特定的字节序,那么struct
模块绝对是你的好帮手,但你并不需要它来查看字节数据。