083、Python 读二进制文件

在Python中,读取二进制文件使用open()函数,并将模式(mode)设置为'rb'('r’表示读取,'b’表示二进制)。这样,可以读取文件内容作为字节(bytes)对象,而不是作为文本字符串。

如:

# 打开一个二进制文件用于读取
with open('Resources/pic1.png', 'rb') as image_file:# 读取文件的全部内容image_bytes = image_file.read()# 将字节转换为十六进制字符串,并添加空格以提高可读性(可选)hex_str = image_bytes.hex()hex_str_with_spaces = ' '.join(hex_str[i:i + 2] for i in range(0, len(hex_str), 2))# 打印十六进制字符串print(hex_str_with_spaces)

但是,考虑到文件可能比较大,可以考虑分块读取进行处理;同时也考虑到打印输出到控制台的数据比较大,故应该把它写到文本中输出。

优化后:

# 定义块大小
block_size = 1024 * 1024  # 1MB# 以二进制模式打开图片文件和输出文件
with open('Resources/pic1.png', 'rb') as image_file, open('Resources/image_hex.txt', 'w') as hex_file:# 不断读取块,直到文件末尾while True:# 读取一个块的数据block = image_file.read(block_size)# 检查是否已到达文件末尾if not block:break# 将块数据转换为十六进制字符串,并添加换行符以提高可读性hex_str = block.hex()hex_file.write(hex_str + '\n')  # 或者使用空格分隔每个字节对

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/48216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构建之源:深入解析Gradle的settings.gradle文件

标题:构建之源:深入解析Gradle的settings.gradle文件 在Gradle的世界中,settings.gradle文件扮演着至关重要的角色。它是Gradle多项目构建的心脏,负责定义和管理项目结构,包括项目的组织、子模块的包含和项目之间的关…

敲详细的springframework-amqp-rabbit源码解析

看源码时将RabbitMQ的springframework-amqp-rabbit和spring-rabbit的一套区分开,springboot是基于RabbitMQ的Java客户端建立了简便易用的框架。 springboot的框架下相对更多地使用消费者Consumer和监听器Listener的概念,这两个概念不注意区分容易混淆。…

Vatee万腾平台:智慧金融的创新引擎,驱动金融服务升级

在数字化浪潮席卷全球的今天,金融行业正经历着前所未有的变革与升级。Vatee万腾平台,作为智慧金融领域的创新先锋,正以其独特的技术优势、前瞻的战略布局和卓越的服务能力,成为推动金融服务升级的重要引擎。 智慧金融:…

一个关于STM32的DAC输出的遗忘点

众所周知熟练使用HAL库可以帮你解决不少stm32的开发难题,但是是谁让你陷入了这些难题,别问。 如上图所示,正常初始化这个模块后生成代码如下图所示; * DAC init function */ void MX_DAC_Init(void) {/* USER CODE BEGIN DAC_Ini…

Build Your Own X: 通过实践深入理解技术的开源项目

在当今快速发展的技术世界中,深入理解各种技术的工作原理变得越来越重要。而 Build Your Own X 项目正是为此而生,它旨在帮助开发者通过从头构建各种技术来真正掌握编程精髓。今天,让我们一起来了解这个令人兴奋的开源项目。 Build Your Own X 简介 Build Your Own X 是一个开…

2024年计算机软考中级【硬件工程师】面试题目汇总(附答案)

硬件工程师面试题汇总分析 1、解释一下同步电路和异步电路 解题思路 同步电路和异步电路是指同步时序电路和异步时序电路。由于存储电路中触发器的动作特点不同,因此可以把时序电路分为同步时序电路和异步时序电路两种。同步时序电路所有的触发器状态的变化都是在同…

技术设计文档:订单管理系统

1. 概述 1.1 目的 本文档旨在描述订单管理系统的技术实现方案,包括架构设计、数据模型、技术选型、接口设计、安全性和性能要求。 1.2 范围 本设计文档涵盖系统架构、模块划分、数据库设计、前后端技术栈以及系统集成点。 2. 架构设计 2.1 系统架构 微服务架…

【AI工具基础】—B树(B-tree)

B树(B-tree)是一种自平衡的树状数据结构,它能够在保持数据有序的同时,优化大块数据的读写操作,使得查找、顺序访问、插入和删除等操作都能在对数时间内完成。以下是对B树原理的详细描述: 一、定义与特性 …

【单目3D检测】smoke(1):模型方案详解

纵目发表的这篇单目3D目标检测论文不同于以往用2D预选框建立3D信息,而是采取直接回归3D信息,这种思路简单又高效,并不需要复杂的前后处理,而且是一种one stage方法,对于实际业务部署也很友好。 题目:SMOKE&…

Java 中的异常

异常:就是出现的问题。 在Java中异常被当成对象进行处理,所有的异常类都继承于Throwable类,如果Java提供的异常类并不能满足需求,用户还可以自己定义一个异常类。 下面是异常体系结构: Throwable又分成了Error和Exce…

【Linux网络】epoll实现的echo服务器{nocopy类/智能指针/echo服务器}

文章目录 1.代码基础1.1某类唯一存在1.2C智能指针 2.epoll实现的echo服务器日志套接字CMakeepoll封装主函数服务器 1.代码基础 1.1某类唯一存在 这段代码定义了一个名为 nocopy 的类,它旨在防止该类的实例被复制或赋值。这是通过在类中显式删除拷贝构造函数&#…

vmware配置centos+配置静态ip联网+更换镜像

centos7配置参考【实战】VMware17虚拟机以及Centos7详细安装教程-CSDN博客 ip配置步骤: 先更改编辑虚拟网络编辑器中的内容 就按照还原默认设置来,设定后就是以上内容,然后一定要记住子网ip和子网掩码 接下来就是NAT设置: 网关…

ES6 字符串的新增方法(二十)

1. String.prototype.startsWith(searchString, position) 特性:判断字符串是否以指定的子字符串开始。 用法:检查字符串的开始部分。 const str "Hello World"; console.log(str.startsWith("Hello")); // 输出:true…

【Web前端技术 02】深入探索HTML5:标签全解析与案例演示!

🌐 深入探索HTML5:标签全解析与案例演示! 大家好!在上一篇文章中,我们对HTML5有了一个基本的了解。今天,我们将更深入地探索HTML5,全面介绍各种标签及其应用。从基础标签到新增标签&#xff0c…

PE安装系统

前些天客户的电脑坏了,需要重装系统,我们的恢复光盘安装的时候,由于主板的原因,导致进入windows安装界面,鼠标键盘没有响应,自然也就无法正常安装了. 那我们只能换个方法,PE安装试试看,那么我们需要做哪些准备工作呢? 1.制作PE启动盘,网上很多制作工具,如""U启动,…

关于 Docker Registry (镜像仓库)

什么是镜像仓库 概念 镜像仓库(Docker Registry)负责存储、管理和分发镜像,并提供了登录认证能力,建立了仓库的索引。 镜像仓库管理多个 Repository,Repository 通过命名来区分。每个 Repository 包含一个或多个镜像…

Nacos 面试题及答案整理,最新面试题

Nacos的核心功能有哪些? Nacos的核心功能主要包括以下几点: 1、服务发现与注册: Nacos支持服务的注册与发现,允许服务实例在Nacos中注册,并被客户端发现和调用。 2、配置管理: 提供动态的配置服务,支持配置的集中存储、版本控制和动态更新。 3、服务健康检查: Nacos实现…

P1-AI产品经理--九五小庞

产品经理的定位 AI基于现有业务挖掘AI应用场景,服务提供商选择及算法定制等,配合已有产品完成整体产品工工资基于从事医疗行业的考虑,我们走的应该是AI产品经理(软件型) AI产品经理(行业型) AI…

Python爬虫(1) --基础知识

爬虫 爬虫是什么? spider 是一种模仿浏览器上网过程的一种程序,可以获取一些网页的数据 基础知识 URL 统一资源定位符 uniform resource locator http: 超文本传输协议 HyperText Transfer Protocol 默认端口 80 https: 安全的超文本传输协议 security…

Fastgpt本地或服务器私有化部署常见问题

一、错误排查方式 遇到问题先按下面方式排查。 docker ps -a 查看所有容器运行状态,检查是否全部 running,如有异常,尝试docker logs 容器名查看对应日志。容器都运行正常的,docker logs 容器名 查看报错日志带有requestId的,都是 OneAPI 提示错误,大部分都是因为模型接…