Python按大小优化组

时间:2017-07-18 19:05:43

标签: python-2.7 file optimization directory grouping

Python 2.7

原因:我有一个包含各种顶级文件夹/目录和文件的目录。我需要将这些备份到可写DVD。为了优化使用的DVD数量,我想使用Python扫描顶级目录,然后将顶级文件夹和文件分组到一定大小的最佳(最少)分组(在这种情况下为~4.7GB)。当然,我可以手动执行此操作,但结果不会优化DVD的使用。

问题:我可以编写目录scan / walk,但有人知道我可以使用的代码或模块,可以最佳地将文件夹/文件列表分组为最优< / strong>预定大小的分组?

开源/免费Windows应用程序的建议。也可以做到这一点。

1 个答案:

答案 0 :(得分:1)

这看起来像Bin Packing Problem,其中给出了一些项目和bin的大小。其中一个目的是找到一种配置,使得每个箱子不包含任何物品,使得它们的尺寸总和大于箱子的容量,并且箱子的数量被最小化。

您的问题映射到此问题,因为每个目录都是一个项目,并且这些箱子代表DVD。

问题是组合NP-hard 。这意味着没有太多希望在合理的时间内找到绝对的最优解决方案。然而,这个问题已得到很好的研究,并且存在很多可以产生良好结果的启发式方法。

快速搜索“Python bin packing”会生成这些库binpackingbin-packing-problem。我不认为这是最好的库(也不是说它是相反的)。但我非常有信心存在良好的装箱库(可能给定的装箱库会做得很好)。