gpt4 book ai didi

python - 使用 Python 读取大型二进制文件的最快方法

转载 作者:行者123 更新时间:2023-12-03 02:36:26 24 4
gpt4 key购买 nike

我需要在 Python 3.6 中读取一个简单但大(500MB)的二进制文件。该文件由 C 程序创建,包含 64 位 double 据。我尝试使用 struct.unpack 但这对于大文件来说非常慢。

这是我读取的简单文件:

def ReadBinary():

fileName = 'C:\\File_Data\\LargeDataFile.bin'

with open(fileName, mode='rb') as file:
fileContent = file.read()

现在我有了文件内容。将其解码为 64 位 double 浮点或无需进行格式转换即可读取的最快方法是什么?

如果可能的话,我想避免分块读取文件。我想立即解码它,就像 C 那样。

最佳答案

您可以使用array.array('d')'s fromfile 方法:

def ReadBinary():
fileName = r'C:\File_Data\LargeDataFile.bin'

fileContent = array.array('d')
with open(fileName, mode='rb') as file:
fileContent.fromfile(file)
return fileContent

这是作为原始机器值读取的 C 级。 mmap.mmap 还可以通过创建 mmap 对象的 memoryview 并对其进行转换来工作。

关于python - 使用 Python 读取大型二进制文件的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60011009/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com