我在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