2
我python3
程序是從其他地方接收數據如下面的格式的字符串(...
意味着我關心鍵入更多的數據):高效逗號分隔值的字符串轉換爲字節
data = "0,12,145,234;1,0,0,128;2,255,255,255;...;909,100,100,100;"
我想要將其轉換爲打包的二進制數據,我忽略了,
和;
字符。目前,我做了以下內容:
splitData = data.split(';')[:-1] # ignore the last ';'
buff = []
for item in splitData:
addr, R, G, B = item.split(',')
addr = int(addr) # two bytes
R = int(R) # one byte
G = int(G) # one byte
B = int(B) # one byte
packed = struct.pack('HBBB', addr, R, G, B)
buff.append(packed)
dataBytes = b''.join(buff)
對於我上面的示例數據,這個過程給了我以下:
dataBytes = b'\x00\x00\x0c\x91\xea\x01\x00\x00\x00\x80...\x8d\x03ddd'
這就是我想要的(並且是關於一個規模第三原始字符串)。
但是,該過程需要約0.002
秒。我需要每幀進行33次這個過程,這導致大約需要0.05
秒來計算,總計約爲每秒20幀。如果可能,我想加快速度。
有沒有辦法將字符串數據轉換爲比上述方法快的字節數據?
超級聰明!起飛我的回答(+1) –
這樣更快!我得到'0.00156'秒,而在我得到'0.00202'秒之前。 – wckronholm