逐字节读取和处理大型易失性存储器文件

时间:2016-11-18 08:07:34

标签: python memory visualization large-files memory-dump

我目前正在使用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的内容,但是我没有尝试过它,因为我先问过这里。

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

非常感谢

1 个答案:

答案 0 :(得分:0)

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

看看mmap python模块。