将字节转换为Int时出错(Python 2.7)
我使用Python2.7,以字节的形式读取数据(它是一个.ecg文件),但我需要将其转换为整数值将字节转换为Int时出错(Python 2.7),python,python-2.7,Python,Python 2.7,我使用Python2.7,以字节的形式读取数据(它是一个.ecg文件),但我需要将其转换为整数值 packetID = int(holter.read(1), 2) packetSS = int(holter.read(2), 2) packetFB = int(holter.read(2), 2) 这将返回错误 invalid literal for int() with base 2: '\x01' int()。如果要通过TestRing将一个字符转换为整数,可以使用ord()。但是,如
packetID = int(holter.read(1), 2)
packetSS = int(holter.read(2), 2)
packetFB = int(holter.read(2), 2)
这将返回错误
invalid literal for int() with base 2: '\x01'
int()。如果要通过TestRing将一个字符转换为整数,可以使用ord()
。但是,如果您想一次转换多个字节,可以使用struct
模块,特别是struct.unpack
它看起来像是在读取二进制数据,而不是ASCII数字,因此您需要一种不同的转换方式:转换
或者,您可以一次全部阅读:
packetID, packetSS, packetFB = struct.unpack('BHH', holter.read(5))
B和H的意义是什么?@jrs11这些是无符号字节和无符号半字(2字节)的格式代码。如果需要签名,请使用小写字母'b'
或'h'
。完整的代码表在我链接的文档中。我的新错误是:“解包需要长度为1的字符串参数”@jrs11read(1)
应返回长度为1的字符串,除非您在文件末尾。@jrs11我帮不了您。查看read
调用返回的内容,并执行适当的操作。
packetID, packetSS, packetFB = struct.unpack('BHH', holter.read(5))