全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Python二进制文件怎么读写_bytes与bytearray讲解【教学】

Python读写二进制文件需用bytes(不可变)和bytearray(可变)类型,open()必须使用'b'模式(如'rb'、'wb'),bytes支持切片索引但不可修改,bytearray支持原地编辑,适合高效修改字节数据。

Python 读写二进制文件,核心是用 bytesbytearray 类型来处理原始字节数据。它们不是字符串,不能直接用 str 的方法操作,也不能和字符串混用(会报错)。关键区别在于:bytes 是不可变的,bytearray 是可变的——就像 strlist 的关系。

打开二进制文件:必须加 b 模式

读写二进制文件时,open() 的 mode 参数必须包含 b,比如 'rb''wb''r+b'。漏掉 b 会导致编码错误或数据损坏。

  • with open('photo.jpg', 'rb') as f: data = f.read() → 返回 bytes 对象
  • with open('output.bin', 'wb') as f: f.write(b'\x00\x01\x02') → 写入字节序列
  • 不能写 f.write('hello'),会报 TypeError;必须是 b'hello'bytes/bytearray

bytes:只读字节序列,适合存储/传输

bytes 是不可变类型,创建后内容不能修改。适合做常量、缓存、网络收发等不需要改写场景。

  • 字面量写法:b'abc'b'\xff\x00\x80'bytes([1, 2, 3])
  • 支持切片、索引、in 判断,但不支持 .append()[0] = 97 等赋值操作
  • 常见转换:bytes.fromhex('aabbcc')b'\xaa\xbb\xcc'b'hello'.hex()'68656c6c6f'

bytearray:可变字节缓冲区,适合编辑/构造

当你需要修改某几个字节(比如改图片头、拼接协议包、加密解密中间过程),bytearray 更高效——不用反复新建对象。

  • 创建方式:bytearray(b'abc')bytearray(10)(10 字节全 0)、bytearray([10, 20, 30])
  • 支持原地修改:ba[0] = 255ba.append(0x01)ba.extend(b'def')
  • 可以转成 bytes 传给文件或 socket:data = bytes(ba)(注意这是拷贝)

实际读写示例:复制并修改一个二进制文件

比如把一个 PNG 文件头(前 8 字节)从 b'\x89PNG\r\n\x1a\n' 改成自定义标识:

with open('input.png', 'rb') as f:
    ba = bytearray(f.read())  # 全部读入可变缓冲区

修改前 4 字节为自定义魔数

ba[0:4] = b'MYBN'

with open('output.bin', 'wb') as f: f.write(ba) # 直接写入 bytearry,自动转为 bytes 流

这个过程用 bytes 就得切片拼接:new_data = b'MYBN' + old_bytes[4:],内存开销更大。


# python  # 编码  # app  # 字节  # 区别 


相关文章: 宝华建站服务条款解析:五站合一功能与SEO优化设置指南  如何配置IIS站点权限与局域网访问?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  如何在云指建站中生成FTP站点?  如何获取PHP WAP自助建站系统源码?  如何快速生成ASP一键建站模板并优化安全性?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  建站之星Pro快速搭建教程:模板选择与功能配置指南  Bpmn 2.0的XML文件怎么画流程图  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何选择建站程序?包含哪些必备功能与类型?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  东莞专业制作网站的公司,东莞大学生网的网址是什么?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  江苏网站制作公司有哪些,江苏书法考级官方网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  定制建站如何定义?其核心优势是什么?  如何在Tomcat中配置并部署网站项目?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  建站之星安装失败:服务器环境不兼容?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何用免费手机建站系统零基础打造专业网站?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  如何正确下载安装西数主机建站助手?  如何在橙子建站上传落地页?操作指南详解  ,想在网上投简历,哪几个网站比较好?  定制建站价位费用解析与套餐推荐全攻略  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  微课制作网站有哪些,微课网怎么进?  GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  网站制作价目表怎么做,珍爱网婚介费用多少?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  ,在苏州找工作,上哪个网站比较好?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  深圳网站制作培训,深圳哪些招聘网站比较好?  如何在云服务器上快速搭建个人网站?  如何注册花生壳免费域名并搭建个人网站?  微信小程序 input输入框控件详解及实例(多种示例)  广州顶尖建站服务:企业官网建设与SEO优化一体化方案  简单实现Android文件上传  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站之星上传入口如何快速找到?  制作网站的基本流程,设计网站的软件是什么?  个人网站制作流程图片大全,个人网站如何注销?  建站10G流量真的够用吗?如何应对访问高峰? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。