我在Python 2.7中工作,正在读取数据中的字节(它是一个.ecg文件),但我需要将其转换为整数值。将字节转换为Int时出错(Python 2.7)
packetID = int(holter.read(1), 2)
packetSS = int(holter.read(2), 2)
packetFB = int(holter.read(2), 2)
这将返回错误
我在Python 2.7中工作,正在读取数据中的字节(它是一个.ecg文件),但我需要将其转换为整数值。将字节转换为Int时出错(Python 2.7)
packetID = int(holter.read(1), 2)
packetSS = int(holter.read(2), 2)
packetFB = int(holter.read(2), 2)
这将返回错误
它看起来像你正在读取二进制数据,而不是ASCII码,所以你需要一种不同的方式来转换:struct
module。
import struct
packetID = struct.unpack('B', holter.read(1))[0]
packetSS = struct.unpack('H', holter.read(2))[0]
或者你可以同时读取所有这些:
packetID, packetSS, packetFB = struct.unpack('BHH', holter.read(5))
int()
的数字如'1'
字符串表示转换为整数。如果要将单字符的字符串转换为整数,则可以使用ord()
。但是,如果要一次转换多个字节,则可以使用struct
模块,具体为struct.unpack
。
什么是B和H的意义是什么? – jrs11
@ jrs11这些是无符号字节和无符号半字(2字节)的格式代码。如果您需要签名,请使用小写字母“b”或“h”。完整的代码表位于我链接的文档中。 –
我的新错误是:'unpack需要一个长度为1的字符串参数' – jrs11