Python 使用print输出二进制文件时产生的错位

项目实践中,

with open(fileName, 'rb') as f: result = f.read()print(result)f.close()

打开二进制文件,打印出的结果会出现有些\x后面有好几个字符的情况
在这里插入图片描述
但实际这串数字是
在这里插入图片描述

这种情况是因为print函数将二进制数据解释为字符串并以其字节值的十六进制表示形式显示不可打印字符。

要避免这种情况,解决方法是:

  1. 使用hex()方法:将二进制数据转换为十六进制字符串,这样每个字节都会以两个字符表示。
with open('fileName', 'rb') as f:result = f.read()print(result.hex())
  1. 使用binascii模块:该模块提供了将二进制数据转换为十六进制表示的便捷方法。
import binasciiwith open('fileName', 'rb') as f:result = f.read()print(binascii.hexlify(result).decode('ascii'))
  1. 使用repr()函数:虽然这不会完全避免\x的出现,但它会确保所有不可打印字符都被正确地转义并显示。(不推荐)
with open('fileName', 'rb') as f:result = f.read()print(repr(result))

示例代码如下:

with open(fileName, 'rb') as f: result = f.read()print(result)f.close()
print(result.hex())
print(binascii.hexlify(result).decode('ascii'))
print(repr(result))

运行结果
在这里插入图片描述
这里不推荐第三种方式,他虽然能保留字节的形式,但不一定就能解析正确。

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

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

相关文章

Java中如何自定义异常进行抛出,并且定义全局异常处理类进行捕获异常(详细讲解)?

1.先理解为什么要抛出异常? 一句话就是为了终止程序,一般是终止业务层也就是service层。 2.为什么要自定义异常抛出? 因为系统提供的异常种类很多,而且代表的含义很多,所以我们需要自己定义一个通用的异常&#xff0…

白帽子最喜欢用什么渗透测试工具?看看哪些是你用过的

一、白帽子最喜欢用什么安全工具? 2020 年的 HackerOne 黑客报告中,统计过白帽子们最喜欢用的软硬件工具。 从图中可以看到,89% 的白帽子都会使用 Burp Suite 这个 Web 应用安全测试工具,有 39% 会尝试自己写工具,第三名的 Fuzzers 是模糊测试工具。再后面主要是一些代理…

STM32-17-DAC

STM32-01-认识单片机 STM32-02-基础知识 STM32-03-HAL库 STM32-04-时钟树 STM32-05-SYSTEM文件夹 STM32-06-GPIO STM32-07-外部中断 STM32-08-串口 STM32-09-IWDG和WWDG STM32-10-定时器 STM32-11-电容触摸按键 STM32-12-OLED模块 STM32-13-MPU STM32-14-FSMC_LCD STM32-15-DMA…

k8s学习--OpenKruise详细解释以及原地升级及全链路灰度发布方案

文章目录 OpenKruise简介OpenKruise来源OpenKruise是什么?核心组件有什么?有什么特性和优势?适用于什么场景? 什么是OpenKruise的原地升级原地升级的关键特性使用原地升级的组件原地升级的工作原理 应用环境一、OpenKruise部署1.安…

ssm宠物网站系统-计算机毕业设计源码07183

摘 要 在信息飞速发展的今天,网络已成为人们重要的信息交流平台。宠物网站每天都有大量的信息需要通过网络发布,为此,本人开发了一个基于B/S(浏览器/服务器)模式的宠物网站系统。 该系统以JJava编程语言、MySQL和SSM框…

基于 VITA57.1 标准的 2 收 2 发射频子卡(国产 ADRV9009子卡)

FMC159 是一款基于 VITA57.1 标准规范,实现 2 收 2 发的射频子模块,该板卡基于国产化 ADRV9009 射频收发器,涵盖了50MHz~6GHz 频段,并集成了双通道收发链路,发送最大实时带宽可到 450MHz,接收最大带宽可以到…

十进制、二进制、十六进制之间的相互转换

实验目的 实现int 、float 转换为字符串并显示 实现数字字符以二进制、十进制、十六进制显示 实现十进制、二进制、十六进制之间的相互转换 #include "numconvert.h" #include "ui_numconvert.h"NumConvert::NumConvert(QWidget *parent): QWidget(parent)…

C#特性-CallerMemberName、CallerFilePath和CallerLineNumber的介绍和应用

介绍 在csharp中,CallerMemberName, CallerFilePath, 和 CallerLineNumber 是编译时常量,它们是csharp 5.0引入的特性,用于提供有关调用堆栈的信息,通常用于日志记录和调试。这些特性可以自动填充方法的参数,无需显式…

软考初级网络管理员__网络单选题

1.观察交换机状态指示灯初步判断交换机故障,交换机运行中指示灯显示红色表示()。 警告 正常 待机 繁忙 2.通常测试网络连通性采用的命令是()。 Netstat Ping Msconfig Cmd 3.一台16端口的交换机可以产生()个冲突域? 1 4 15 16…

安装 Nuxt.js 的步骤和注意事项

title: 安装 Nuxt.js 的步骤和注意事项 date: 2024/6/17 updated: 2024/6/17 author: cmdragon excerpt: Nuxt.js在Vue.js基础上提供的服务器端渲染框架优势,包括提高开发效率、代码维护性和应用性能。指南详细说明了从环境准备、Nuxt.js安装配置到进阶部署技巧&…

3D元宇宙虚拟主播引领文旅产业迈向更加美好的未来!

随着文旅产业的蓬勃发展,3D数字代言人的应用正逐渐改变着传统的文旅传播方式。文旅3D数字代言人搭建编辑器的出现,正是满足大部分文旅产业借助数字人浪潮,将传统文化与现代科技完美融合的创新之举。 文旅3D数字代言人搭建编辑器不仅满足了Z世…

SelfGNN: Self-Supervised Graph Neural Networks for Sequential Recommendation

SelfGNN: Self-Supervised Graph Neural Networks for Sequential Recommendation(Sigir2024) 摘要 顺序推荐通过对用户的时间和顺序交互模式进行建模,有效地解决信息过载问题。 为了克服监督信号的局限性,最近的方法在推荐系统中…

奇安信齐向东:AI驱动安全,应对数字经济时代挑战

随着数字经济的蓬勃发展,网络安全问题日益凸显,AI技术的融入为网络安全带来了新的机遇和挑战。近日,备受瞩目的2024全球数字经济大会数字安全高层论坛暨北京网络安全大会战略峰会(简称“BCS大会”)在北京盛大开幕。本次…

GPT-4o的视觉识别能力,将绕过所有登陆的图形验证码

知识星球🔗除了包含技术干货:《Java代码审计》《Web安全》《应急响应》《护网资料库》《网安面试指南》还包含了安全中常见的售前护网案例、售前方案、ppt等,同时也有面向学生的网络安全面试、护网面试等。 我们来看一下市面上常见的图形验证…

3秒生成!这个AI模型画风也太治愈了,新手也能轻松驾驭

还在为不会画画而苦恼吗?别担心,今天给大家介绍一个超好用的AI模型——Soft and Squishy Linework,即使是小白也能轻松生成可爱的动漫图像! Soft and Squishy Linework:专门生成柔和的、低保真(lofi&#…

为何选择Xinstall?告别邀请码,让App推广更便捷!

在互联网日益繁荣的今天,App的推广和运营成为了各大企业关注的重点。然而,传统的推广方式如邀请码限制,往往会给用户带来不便,同时也限制了App的快速增长。在这个背景下,Xinstall凭借其独特的功能和服务,成…

快慢指针技巧

快慢指针技巧 在说快慢指针之前,我们先说一下双指针。 双指针 双指针:使用两个指针来解决问题。 所谓的指针其实就是指数组的下标,或者链表的节点的地址。 我们以数组为例介绍一下。 有两个指针分别存储着数组的两个下标,这就…

成都某展厅2套2x2透明OLED拼接屏项目

成都某展厅的2套2x2透明OLED拼接屏展示设计具有独特的技术魅力和视觉效果。以下是关于这一展示设计的详细介绍: 1.产品规格 类型:透明OLED拼接屏 尺寸与配置:每套为2x2拼接,即每套由4块屏幕组成。 2.应用场景 成都某展厅&#…

HarmonyOS NEXT首个公测Beta版封包完成

华为将在6月21日至23日在深圳举办华为开发者大会2024。 根据华为消费者业务CEO余承东此前的预告,HarmonyOS NEXT将在大会上正式推出Beta版本,用户将有机会体验全新的鸿蒙系统。 HarmonyOS NEXT首个公测Beta版封包完成:Mate 60和Pura 70系列即…

从短期到长期,不同保存期限的红酒管理技巧

在葡萄酒的世界中,保存与管理的技巧对于确保葡萄酒的品质和口感至关重要。特别是对于云仓酒庄雷盛红酒,这种多类型红酒,更需要我们掌握一定的保存管理技巧。这篇文章将详细探讨从短期到长期,不同保存期限的云仓酒庄雷盛红酒的管理…