迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中读取二进制文件

作者:迹忆客 最近更新:2023/12/21 浏览次数:

程序或内部处理器对二进制文件进行解释。它包含字节作为内容。当我们读取一个二进制文件时,会返回一个类型为 bytes 的对象。


用 Python 中的 open() 函数读取一个二进制文件

在 Python 中,我们有 open() 函数,用来创建一个文件对象,将文件的路径传给函数,并以特定的模式打开文件,默认为读模式。当我们打开二进制文件时,在以读、写或追加模式打开此类文件时,必须指定 b 参数。在本教程中,我们将处理二进制读取模式-rb

在下面的代码中,我们将读取一个二进制文件并从文件中打印一个字符。

with open("sample.bin", "rb") as f:
    data = f.read()

print(data[2])

输出:

83

如果我们打印单个字符,那么我们可以查看整数。

Python 有一个名为 struct 的包,它有很多方法,可以用来处理存储在文件、数据库等资源中的二进制数据。

struct.unpack() 用来读取打包后的数据,以指定的格式布局。这种布局在打包和解压数据时使用,是用格式字符指定的。这些格式字符以及它们的大小如下所示。

结构解包格式字符表

请注意,struct.unpack() 函数总是返回一个元组。

import struct

with open("sample.bin", "rb") as f:
    data = f.read()

unpack_result = struct.unpack("hhl", data[0:8])
print(unpack_result)

输出:

(1280, 27731, 7037801)

这里,hhl 表示短,短,长 int 作为数据格式布局,我们可以在输出中看到。这就是为什么解包的缓冲区只有 8 个字节,因为格式布局的大小是 8(2+2+4)。


用 Python 中的 pathlib.Path 读取二进制文件

我们也可以使用 pathlib 库中 Path 类中的 read_bytes() 方法,以字节模式读取文件,然后使用 struct.unpack() 函数解释数据,如前所述。

from pathlib import Path
import struct

data = Path("sample.bin").read_bytes()

multiple = struct.unpack("ii", data[:8])

print(multiple)

输出:

(1817380096, 7037801)

用 Python 中的 numpy.fromfile() 函数读取一个二进制文件

NumPy 模块中提供了另一种有趣的方法。使用该模块中的 fromfile() 函数,我们可以在使用 dtype() 函数指定格式数据后,从文件中读取二进制数据。这被认为是一种快速的方法。下面的代码展示了如何实现这个功能。

import numpy as np

with open("sample.bin") as f:
    rectype = np.dtype(np.int32)
    bdata = np.fromfile(f, dtype=rectype)

print(bdata)

输出:

[1817380096    7037801]

在这里,我们将格式类型指定为 32 位整数,并使用 fromfile() 函数提取数据。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Python 中读取文件的第一行

发布时间:2023/12/24 浏览次数:156 分类:Python

本教程演示了如何在 Python 中读取文本文件的第一行。在 Python 中,我们有内置的函数可以处理不同的文件操作。

用 Python 向文件写入字节

发布时间:2023/12/24 浏览次数:69 分类:Python

本教程演示了如何在 Python 中向二进制文件写入字节。本教程中,我们将介绍在 Python 中如何向二进制文件写入字节。

Python 从路径获取不带扩展名的文件名

发布时间:2023/12/24 浏览次数:55 分类:Python

本教程演示了如何在 Python 中从文件路径中获取不带扩展名的文件名。本教程将演示在 Python 中从文件路径中获取不带扩展名的文件名的各种方法。

在 Python 中创建一个不存在的文件

发布时间:2023/12/24 浏览次数:64 分类:Python

本教程演示了如何在 Python 中创建一个不存在的文件。本教程将解释如何在 Python 中创建一个不存在的文件的各种方法。

在 Python 中向文件写入字符串

发布时间:2023/12/24 浏览次数:92 分类:Python

有两种主要方法可用于在 Python 中将字符串写入文件,文件处理和上下文管理器。在本教程中,我们将讨论在 Python 中将字符串写入文件的方法。

在 Python 中替换文件中的一行

发布时间:2023/12/24 浏览次数:64 分类:Python

本教程讨论如何在 Python 中替换文件中的一行。文件处理被认为是任何 Web 应用程序的重要方面。与大多数编程语言类似,Python 完全能够支持文件处理。

将 Python 变量保存到文件

发布时间:2023/12/24 浏览次数:110 分类:Python

本教程讨论如何在 Python 中将变量保存到文件中。Python 完全有能力支持文件处理。它允许程序员处理不同类型的文件,执行读写等基本操作

在 Python 中从文件中删除特定行

发布时间:2023/12/24 浏览次数:183 分类:Python

本教程讨论如何在 Python 中从文件中删除特定行。Python 支持和允许数据文件处理,它构成了 Python 编程语言的重要组成部分。

在 Python 中逐行读取 CSV

发布时间:2023/12/24 浏览次数:164 分类:Python

本文讨论了如何在 Python 中逐行读取 CSV 文件。在 Python 中,读取文件并按列打印是很常见的。但是有时逐行读取文件可能会有点混乱。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便