在 Python 中读取二进制文件
程序或内部处理器对二进制文件进行解释。它包含字节作为内容。当我们读取一个二进制文件时,会返回一个类型为 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()
函数提取数据。
相关文章
在 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 中,读取文件并按列打印是很常见的。但是有时逐行读取文件可能会有点混乱。