下面我将为您详细讲解“对python3新增的byte类型详解”的攻略。
什么是bytes类型
byte是python3中的内置类型,表示一个不可变的字节序列(bytes,字节串)。在python3之前,需要使用str类型表示字节码,但是由于str类型底层采用的是unicode编码,所以在处理二进制数据时会有一些限制,因此python3新增byte类型,专门用于处理字节数据。
如何创建bytes类型
使用bytes()
函数可以创建一个空的bytes类型:
b = bytes()
print(b) # b''
使用字符串可以创建一个bytes类型:
s = "hello world"
b = bytes(s.encode('utf-8'))
print(b) # b'hello world'
还可以使用字节数组创建一个bytes类型:
arr = [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
b = bytes(arr)
print(b) # b'Hello world'
bytes类型的常见操作
bytes类型的切片和索引
字节串也可以进行切片和索引操作,与字符串类似:
b = b'Hello world'
print(b[0]) # 72
print(b[:5]) # b'Hello'
print(b[6:]) # b'world'
bytes类型的拼接
使用+
符号可以将两个bytes类型拼接在一起:
b1 = b'Hello'
b2 = b' world'
b3 = b1 + b2
print(b3) # b'Hello world'
bytes类型转换为字节数组
使用list
函数可以将bytes类型转换为字节数组:
b = b'Hello world'
arr = list(b)
print(arr) # [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
bytes类型支持的方法
bytes类型支持的方法与字符串基本相同,例如:
len
: 返回字节串的长度count
: 返回指定字节序列在字节串中出现的次数decode
: 将字节串解码为一个编码格式的字符串endswith
: 判断字节串是否以指定的后缀结束join
: 按照指定的分隔符将一个可迭代对象中的字节串拼接为一个整体字节串replace
: 用一个新的字节序列替换字节串中的指定字节序列split
: 将字节串按照指定的分隔符分割成一个列表
示例1
下面是一个读取二进制文件的示例,利用bytes类型来存储读取的二进制数据:
with open('test.bin', 'rb') as f:
data = f.read()
print(type(data)) # <class 'bytes'>
示例2
下面是一个使用socket接收二进制数据的示例,利用bytes类型来存储接收的数据:
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 8888))
data = sock.recv(1024)
print(type(data)) # <class 'bytes'>
以上就是“对python3新增的byte类型详解”的攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python3新增的byte类型详解 - Python技术站