Python 3.2.3 (default, Oct 19 2012, 19:53:16)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = b'asdf\nasdf'
>>> a.split('\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Type str doesn't support the buffer API
>>> a = a.decode()
>>> a.split('\n')
['asdf', 'asdf']
>>>
3条答案
按热度按时间9fkzdhlc1#
没有理由转换成字符串。只要给予
split
bytes参数。用字符串拆分字符串,用字节拆分字节。另外,由于要在换行符上拆分,可以使用
splitlines()
(str
和bytes
都可以使用)来稍微简化一下:sc4hvdpw2#
将字节解码为unicode(str),然后使用
str.split
:你也可以用
b'\n'
来分割,但是我想你必须处理字符串而不是字节,所以尽快把你所有的输入数据转换成str
,并且在你的代码中只使用unicode,在需要输出的时候尽可能晚地把它转换成字节。wrrgggsh3#
试试这个...
rest = b"some\nlines"
rest=rest.decode("utf-8")
那么你可以做
rest.split("\n")