python2中不区分str和bytes , bytes是从python3开始新添加的
bytes也有str类似的方法,支持切片, 不可变
字符串前面加上b来表示一个序列是bytes
In [60]: b=b'you can do it.'
In [61]: type(b)
Out[61]: bytes
In [62]: b.find(b'do')
Out[62]: 8
In [63]: b[0:4]
Out[63]: b'you '
str使用encode()转化成bytes, bytes使用decode()转成str
默认使用的是UTF-8
的编码, 如果是其他编码,需要显示的传入编码
In [64]: b.decode()
Out[64]: 'you can do it.'
bytearray
bytearray()
返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256
。下面说明一下几种特别的使用方法:
- 如果source是一个字符串,那么必须给出endcoding是什么样编码的,以便转换为合适的字节保存。
- 如果source是一个整数,那么这个数组将初始化为空字节。
- 如果source是一个有缓冲区接口的对象,那么只读的接口初始到数组里。
- 如果source是一个迭代对象,那么这个迭代对象的元素都必须符合
0 <= x < 256
,以便可以初始化到数组里
#bytearray()函数
a = bytearray('1234深圳', 'utf-8')
bytearray(b'1234\xe6\xb7\xb1\xe5\x9c\xb3')
b = bytearray()
bytearray(b'')
c = [1,4,5,7,8]
bytearray(b'\x01\x04\x05\x07\x08')
网友评论