在 Python字节数组 编程中,处理二进制数据是一项常见但又容易被初学者忽视的重要技能。无论是读取文件、网络通信,还是加密解密操作,都离不开对 bytes 和 bytearray 类型的理解和使用。本文将从零开始,带你全面掌握 Python二进制数据处理 的核心知识。

在计算机中,所有数据最终都以二进制形式存储。一个字节(Byte)由8个比特(bit)组成,可以表示0到255之间的整数。Python 提供了两种用于处理字节序列的内置类型:bytes(不可变)和 bytearray(可变)。
bytes 是一个不可变的字节序列。一旦创建,就不能修改其内容。它常用于表示原始二进制数据,比如从文件或网络读取的数据。
# 方法1:通过字符串编码创建b1 = b'hello'b2 = '你好'.encode('utf-8')# 方法2:通过整数列表创建(每个整数必须在0~255之间)b3 = bytes([72, 101, 108, 108, 111])# 方法3:创建指定长度的空字节序列(初始化为0)b4 = bytes(5) # 结果为 b'\x00\x00\x00\x00\x00'print(b1) # b'hello'print(b2) # b'\xe4\xbd\xa0\xe5\xa5\xbd'print(b3) # b'Hello'print(b4) # b'\x00\x00\x00\x00\x00'b = b'Python'print(b[0]) # 输出 80('P' 的 ASCII 值)print(b[1:4]) # 输出 b'yth'print(len(b)) # 输出 6注意:bytes是不可变的,尝试修改会报错:b[0] = 70将引发TypeError。
与 bytes 不同,bytearray 是可变的,这意味着你可以修改其中的元素。这在需要动态构建或修改二进制数据时非常有用。
# 方法1:从字符串编码创建ba1 = bytearray('hello', 'utf-8')# 方法2:从整数列表创建ba2 = bytearray([72, 101, 108, 108, 111])# 方法3:创建指定长度的空 bytearrayba3 = bytearray(3)print(ba1) # bytearray(b'hello')print(ba2) # bytearray(b'Hello')print(ba3) # bytearray(b'\x00\x00\x00')ba = bytearray(b'Python')ba[0] = 74 # 修改第一个字节为 'J'(ASCII 74)ba.append(33) # 添加感叹号(ASCII 33)print(ba) # bytearray(b'Jython!')# 还可以使用 extend()、remove() 等方法ba.extend(b' World')print(ba) # bytearray(b'Jython! World')两者之间可以轻松相互转换:
# bytearray 转 bytesba = bytearray(b'hello')b = bytes(ba)print(type(b)) # # bytes 转 bytearrayb = b'world'ba = bytearray(b)print(type(ba)) # 在以下场景中,你会频繁使用 bytearray用法 或 bytes:
# 以二进制模式读取图片with open('photo.jpg', 'rb') as f: data = f.read() # data 是 bytes 类型# 修改部分字节(例如添加水印标记)ba = bytearray(data)ba[10:15] = b'WATER'# 写回新文件with open('photo_watermarked.jpg', 'wb') as f: f.write(ba)掌握 Python字节数组 的使用,是进阶 Python 开发的关键一步。bytes 适用于只读的二进制数据,而 bytearray 则适合需要动态修改的场景。理解它们的区别与联系,能让你在处理 Python二进制数据处理 任务时更加得心应手。
希望这篇教程能帮助你彻底搞懂 bytearray用法 与 bytes 的核心概念。动手实践是掌握知识的最佳方式,快去写几行代码试试吧!
本文由主机测评网于2025-12-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127989.html