新闻中心

Python 二进制文件的读取与写入

2025-11-20
浏览次数:
返回列表
Python中读写二进制文件需用'rb'或'wb'等带'b'的模式,配合bytes类型操作,读取时返回bytes对象,可分块处理大文件,写入时需确保数据为bytes类型,避免编码错误,注意文件会被覆盖或追加。

python 二进制文件的读取与写入

Python 中读取和写入二进制文件非常直接,关键在于使用正确的模式打开文件,并配合 bytes 类型进行操作。二进制文件包括图片、音频、视频、可执行文件等非文本数据,不能用普通文本方式处理。

打开二进制文件的模式

在使用 open() 函数时,通过添加 'b' 标志来指定以二进制模式操作:

  • 'rb':以二进制格式读取文件
  • 'wb':以二进制格式写入文件(会覆盖原有内容)
  • 'ab':以二进制格式追加写入
  • 'r+b':以二进制格式读写

读取二进制文件

使用 'rb' 模式打开文件后,调用 read() 方法获取字节内容:

with open('example.jpg', 'rb') as f:
    data = f.read()
    print(type(data))  # <class 'bytes'>

也可以分块读取,避免大文件占用过多内存:

chunk_size = 1024
with open('large_file.bin', 'rb') as f:
    while chunk := f.read(chunk_size):
        process(chunk)  # 处理每一块数据

写入二进制文件

要将 bytes 写入文件,使用 'wb' 模式。注意如果文件已存在会被覆盖:

家饰网上商城系统 家饰网上商城系统

虚拟主机或在自备服务器中开设好的主机空间,主机环境要求:PHP4.3-5.x/非安全模式/允许WEB文件上传MYSQL4.2-5.xzend optimizer 3.2以上安装方法:1、将安装包解压后,将全部文件和目录上传到网站空间根目录, 用FTP上传时必须采用二进制方式。2、运行http://您的域名/(安装向导),或者进入网站安装http://您的域名/base/install/,填写MYS

家饰网上商城系统 0 查看详情 家饰网上商城系统

binary_data = b'\x48\x65\x6c\x6c\x6f'  # bytes 对象
with open('output.bin', 'wb') as f:
    f.write(binary_data)

若需追加内容,改用 'ab' 模式即可:

with open('output.bin', 'ab') as f:
    f.write(b'\x20\x57\x6f\x72\x6c\x64')  # 追加 " World"

常见注意事项

处理二进制数据时要注意以下几点:

  • 必须使用 bytes 或 bytearray 类型进行写入,字符串需先编码
  • 不要在二进制模式下使用文本相关参数如 encoding
  • 读取结果是不可变的 bytes,如需修改可用 bytearray
  • 某些文件格式有特定结构(如 PNG 头部),写入时需遵循规范

基本上就这些。只要记住用 'b' 模式并操作 bytes 类型,就能正确处理各类二进制文件。不复杂但容易忽略细节。

以上就是Python 二进制文件的读取与写入的详细内容,更多请关注其它相关文章!


# 解决问题  # 可靠网站建设费用标准是  # 南岗网站seo优化  # 想学seo该买什么书  # 南京贸易网站优化  # 云南域名网站推广哪家好  # 赣州网站建设关键词优化  # 涂料网站seo优化方法  # 抖音合集营销推广  # 陕西seo服务加盟  # 苏州抖音seo账号注册  # 几点  # python  # 中文网  # 相关文章  # 就能  # 大文件  # 时需  # 命令行  # 您的  # 家饰  # 字节  # 编码 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  AO3访问入口汇总 AO3网页版同人作品一键直达  Win11怎么开启高性能模式_Windows 11电源计划优化设置  PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误  Win11输入法不见了怎么办_Windows11恢复语言栏显示方法  必由学官方平台入口 必由学在线课堂登录地址  深入理解Go语言中的指针类型:以*string为例  《明末:渊虚之羽》设计师谈设计角色:那会刚毕业 充满激情  抖音网页版怎么|直播|_抖音网页版开播操作指南  J*a递归快速排序中静态变量导致数据累积问题的解决方案  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  Lar*el如何正确地在控制器和模型之间分配逻辑_Lar*el代码职责分离与架构建议  Lar*el Form Request中唯一性验证在更新操作中的正确实现  MongoDB Aggregation:在嵌套对象数组中精确匹配ObjectId  Go语言中动态执行代码字符串的策略与实践  Typer应用中灵活处理命令行参数的令牌化与解析  QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网  Golang如何测试channel通信行为_Golang channel通信测试与分析方法  uc浏览器网页版入口 uc浏览器网页版最新网址  Composer的 "check-platform-reqs" 命令有什么用_在部署前检查生产环境是否满足Composer依赖需求  AO3最新可访问网址 Archive of Our Own官方在线入口  c++项目目录结构应该如何组织_c++工程化项目结构规范  php源码怎么看淘宝客系统_看php源码淘宝客系统技巧  如何使用Go和Martini动态服务解码后的图片  解决Flask中Quill编辑器内容提交失败及TypeError的指南  优化HTML表单样式:解决输入框焦点跳动与元素间距问题  Composer如何在生产环境安全地执行composer update  LINUX的I/O重定向是什么_深入理解LINUX中 >、>> 与 < 的区别  响应式容器内容自动缩放与宽高比维持教程  12306选座怎么选到商务座_12306商务座选择与配置说明  Node.js中HTML按钮与J*aScript函数交互的正确姿势  KFC早餐时段怎么领特惠代码_KFC早餐订餐优惠代码获取与使用说明  J*aScript教程:根据元素文本内容动态设置背景色  KFC游戏互动怎么赢取优惠券_KFC线上游戏活动参与与优惠代码赢取教程  Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】  提升屏幕阅读器对“m”时间单位的播报准确性:HTML与CSS组合解决方案  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  解决Python logging 中 datefmt 导致时间戳固定不变的问题  Win11如何开启讲述人功能 Win11屏幕阅读器(讲述人)开启与关闭【教程】  理解J*aScript Promise的微任务队列与执行顺序  lar*el怎么安全地存储和获取配置文件中的敏感信息_lar*el敏感信息安全存储方法  邮政快递包裹最新位置 邮政快递实时追踪入口  自定义Bag-of-Words实现:处理带负号的词汇权重  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  html5 app怎么运行环境_配html5 app运行环境【教程】  星露谷物语官网入口 星露谷物语游戏官网入口  4399免费游戏网址入口 4399小游戏免费入口点开即玩  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  Pandas DataFrame:高效添加条件计算列 

搜索