Python 3确实使整个文件读取过程复杂化,因为其中有一个包含字符串的二进制文件。
当我确定我读的是ascii文本时,我可以执行string.decode('ascii')操作,但是在我的文件中,我有以空('\x00')结尾的字符串,我必须读取一个转换为字符串列表。
如果不逐字节检查是否为空,新的方法将如何实现呢?

mylist = chunkFromFile.split('\x00')

TypeError: Type str doesn't support the buffer API

最佳答案

我猜chunkFromFile是一个bytes对象然后还需要为bytes方法提供.split()参数:

mylist = chunkFromFile.split(b'\x00')

见:
>>> chunkFromFile = bytes((123,45,0,67,89))
>>> chunkFromFile
b'{-\x00CY'
>>> chunkFromFile.split(b'\x00')
[b'{-', b'CY']
>>> chunkFromFile.split('\x00')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Type str doesn't support the buffer API

07-28 04:23