在Python中,字符串前面加b表示创建一个**字节串(bytes)**对象,而不是普通的字符串(str)对象。
基本概念
1 2 3 4 5 6 7
| text_str = "hello" print(type(text_str))
text_bytes = b"hello" print(type(text_bytes))
|
主要区别
| 特性 |
字符串(str) |
字节串(bytes) |
| 编码 |
Unicode字符 |
原始字节序列 |
| 使用场景 |
文本处理 |
二进制数据、网络传输、文件I/O |
| 可读性 |
人类可读 |
机器可读 |
| 前缀 |
无或u |
b |
实际应用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| import socket data = b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"
with open("image.jpg", "rb") as f: image_data = f.read()
text = "你好" utf8_bytes = text.encode('utf-8') print(utf8_bytes == b"\xe4\xbd\xa0\xe5\xa5\xbd")
data = b"ready" print(data[0]) print(data[1:4])
|
编码转换
1 2 3 4 5 6 7
| text = "ready" bytes_data = text.encode('utf-8')
bytes_data = b"ready" text = bytes_data.decode('utf-8')
|
总结
b"ready"创建的是一个字节序列,主要用于处理二进制数据。在需要与底层系统、网络协议或二进制文件交互时使用字节串,而在处理文本内容时使用普通字符串。