就绝大部分情况而言,几乎所有能在文本字符串上执行的操作同样也可以在字节串上进行 ,如下示例:
data = b'hello world'
print(data[0:5])
print(data.startswith(b'h'))
print(data.split())
print(data.replace(b'hello', b'hi'))
b'hello'
True
[b'hello', b'world']
b'hi world'
import re
print(re.split(b'[:,]', data)) # 模式本身需要以字节串的形式来指定
[b'hello world']
还有几个显著的区别:
# 1、语义上差异
a = 'Hello World'
print(a[0])
b = b'Hello World'
print(b[0])
H
72
# 2、在字节串上是没有普通字符串那样的格式化操作的, 可以先转换为str操作后再编码回去
'{:10s} {:10d} {:10.2f}'.format("ACME", 100, 1.2345).encode('ascii')
Out[6]: b'ACME 100 1.23'