在Python 3中拆分字符串/字节

时间:2018-02-01 09:32:50

标签: string python-3.x split byte ctypes

我从Github下载了一些代码,用于连接实验室设备:

readBuffer=ctypes.create_string_buffer(1024)
# some C functions modifying readBuffer using ctypes
deviceInfoList=readBuffer.value.split(',')

最后一行显示错误:TypeError: a bytes-like object is required, not 'str'

print(type(readBuffer.value))显示<class 'bytes'>print(readBuffer.value)显示b'0,NEWPORT 1936-R v1.2.2 04/06/12 SN22955\r;'

根据SDK文档文件readBuffer is 'a character buffer with the following format: <DeviceID1>,<DeviceDescription1>;<DeviceID2>,<DeviceDescription2>;<DeviceIDX>,<DeviceDescriptionX>。代码的最后一行想要提取设备ID(0)。

Split应该是一个字符串方法如果我没有弄错,readBuffer.value看起来像byte,而错误则抱怨它是string而不是{{1} }}。这里出了什么问题?

1 个答案:

答案 0 :(得分:2)

stringbytes都有一个split方法,需要一个相同类型的参数。 ','不是bytes对象 - 因此投诉。你想要

deviceInfoList=readBuffer.value.split(b',')