1

我目前正在使用 python 处理由 belkasoft、ftk imager 等应用程序创建的内存转储,它们通常具有扩展名 .mem 或 .dmp,其形式为:

53 FF 00 F0 53 FF 00 

我想可视化这些数据,比如说使用热图或使用曲线可能试图可视化每个字节。如果是 2GB 文件,它将是 2147483648 字节。您将如何读取和处理这种 >= 2GB 的大文件

我一直在尝试类似的东西:

with open("File.mem",'rb') as file:
    byte = file.read(1)
    while byte:
         Do something

并设法进行一些计算,但速度非常慢我还尝试逐行读取文件,这很快,但再次读取每行的字节并进行一些转换也非常缓慢。我也读过一些关于 numpy loadtxt 的文章,但没有做太多实验,我想先在这里问。

任何可能适合这种情况并使其更有效的想法?

非常感谢

4

1 回答 1

1

读取大文件的常用方法是使用 mmap。文件内容映射到您的进程内存空间,您可以通过从 RAM 读取数据来访问它。操作系统负责将所需数据加载到 RAM 中。这类似于交换文件的工作方式。操作系统知道数据在文件中,并在您访问它时动态加载它。如果操作系统需要内存用于其他目的,它也可以从 RAM 中卸载数据,因为它总是可以从文件中再次加载它。

看看mmap python 模块。

于 2016-11-18T08:14:23.037 回答