Python二进制序列类型


在Python中,字节字节数组用于操作二进制数据。这些字节和字节数组由名为memoryview的缓冲区协议支持。memoryview可以访问其他二进制对象的内存,而无需复制实际数据。

字节字面量可以通过以下几种方式构成。

  • b‘This is bytea with single quote’

  • b“Another set of bytes with double quotes”

  • b‘’’Bytes using three single quotes’’’ 或 b“””Bytes using three double quotes”””

一些与字节和字节数组相关的常用方法:

fromhex(string) 方法

fromhex() 方法返回字节对象。它接受一个字符串,其中每个字节包含两个十六进制数字。在这种情况下,ASCII空格将被忽略。

hex() 方法

hex() 方法用于从每个字节返回两个十六进制数字。

replace(byte, new_byte) 方法

replace() 方法用于将字节替换为新的字节。

count(sub[, start[, end]]) 方法

此函数返回子串的不重叠出现次数。它将在start和end之间进行检查。

find(sub[, start[, end]]) 方法

find() 方法可以找到子串的第一次出现。如果搜索成功,它将返回索引,否则返回-1。

partition(sep) 方法

partition方法使用分隔符分割字符串。它将创建一个包含不同分区的列表。

memoryview(obj) 方法

memoryview() 方法用于返回给定参数的内存视图对象。内存视图是表达Python缓冲区协议的安全方法。它允许访问对象的内部缓冲区。

示例代码

hexStr = bytes.fromhex('A2f7 4509')
print(hexStr)
byteString = b'\xa2\xf7E\t'
print(byteString.hex())

bArray1 = b"XYZ"
bArray2 = bArray1.replace(b"X", b"P")
print(bArray2)

byteArray1 = b'ABBACACBBACA'
print(byteArray1.count(b'AC'))

print(byteArray1.find(b'CA'))
bArr = b'Mumbai,Kolkata,Delhi,Hyderabad'
partList = bArr.partition(b',')
print(partList)

myByteArray = bytearray('String', 'UTF-8')
memView = memoryview(myByteArray)

print(memView[2]) #ASCII of 'r'
print(bytes(memView[1:5]))

输出

b'\xa2\xf7E\t'
a2f74509
b'PYZ'
3
4
(b'Mumbai', b',', b'Kolkata,Delhi,Hyderabad')
114
b'trin'

更新于:2019年7月30日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告