有什么方法可以在Python中使用一个函数来处理带有文件列表的文件夹&根据每个分区/文件夹中文件的总大小(以兆字节为单位)将列表分成“分区”(将成为文件夹)?我不知道如何开始这个或先做什么。
答案 0 :(得分:3)
假设您想要一个起点,而不是罐中的解决方案:
os.walk
扫描整个目录树。如果您只需要扫描一个文件夹而不是整个树,您可以使用新的os.scandir
函数在Python 3.5上优化一点而不牺牲简单性(特别是在Windows上),该函数将为您提供stat
信息在Windows上免费(并使其可以作为* NIX系统上的延迟缓存值访问)。在早期版本的Python上,PyPI上的第三方scandir
模块提供相同的接口。os.scandir
,则会使用os.stat
来获取文件大小collections.defaultdict(set)
将文件大小(以MB为单位)映射到舍入到该大小的set
个文件(或者只是处理文件而不是存储在容器中)。或者,使用sorted
key
对大小进行排序,并使用itertools.groupby
(使用您喜欢的任何MB粒度)对结果文件进行分组。