我目前正在使用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的内容,但是我没有尝试过它,因为我先问过这里。
任何可能适合这种情况并使其更有效的想法?
非常感谢
答案 0 :(得分:0)
读取大文件的常用方法是使用mmap。文件内容映射到进程内存空间,您可以通过从RAM读取数据来访问它。 OS负责将所需数据加载到RAM。这与swap文件的工作方式类似。操作系统知道数据在文件中并在您访问时动态加载它。如果OS需要内存用于其他目的,OS也可以从RAM中卸载数据,因为它总是可以从文件中再次加载它。
看看mmap python模块。