Python高效的缓存文件夹、文件和大小的结构

2024-06-10 06:50:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python编写一个磁盘空间使用程序,我已经有了我想要的功能,但是速度很慢。我将要分析的文件系统可能是数百GB,在许多深度密集的文件夹中有数千个文件。在

我用树形图显示数据,这是基于前面链接的论文中的“拆分”布局。布局的创建和求解都是非常快速的操作。http://www.nada.kth.se/utbildning/grukth/exjobb/rapportlistor/2005/rapporter05/engdahl_bjorn_05033.pdf

我走在既定的道路上手术室步行并将文件夹和文件及其大小添加到树图中。我得到每个文件的大小,并将其存储在字典缓存中(其中cache[filePath]=size),这样我就可以轻松地再次检索它。所有这些都很快,除了手术室步行. 跑步手术室步行一个人就需要30多秒,有时几分钟。在

我知道我不能让它在结构上走得更快,但是我想以某种方式缓存结果,这样将来它会更快。这是因为该应用程序允许导航树映射,在这里您可以单击任何部分(这是一个文件夹),它将使树映射的“根”。在

因此,我需要一个缓存解决方案,它可以方便地访问任何文件/文件夹,以及层次结构中的简单导航,这样,如果我从“根”节点开始,我可以跳到任何深度的任何指定子节点,然后从那里我可以在结构中上下移动。在

我宁愿不把数据结构和导航合并到树状图中。如果解决方案是在计划的步行和尺寸调整部分,那将是最好的。最后,我只需要对文件/文件夹结构及其大小进行一次可漫游的重新创建。在

有适合这种结构的图书馆吗?或者我自己写这个有多容易?我以前没有使用过这样的结构,所以我不知道创建它的最佳方法,以便我有我需要的访问类型。在


Tags: 文件程序功能文件夹节点布局解决方案结构