使用Python根据大小(以MB为单位)拆分文件集
有没有办法在Python中使用一个函数来遍历一个包含文件列表的文件夹&根据每个分区/文件夹中文件的总大小(以兆字节为单位)将列表划分为“分区”(将成为文件夹)?我不知道该如何开始,或者先做什么。假设您想要的是一个起点,而不是罐中的解决方案:使用Python根据大小(以MB为单位)拆分文件集,python,file-io,split,directory,filesize,Python,File Io,Split,Directory,Filesize,有没有办法在Python中使用一个函数来遍历一个包含文件列表的文件夹&根据每个分区/文件夹中文件的总大小(以兆字节为单位)将列表划分为“分区”(将成为文件夹)?我不知道该如何开始,或者先做什么。假设您想要的是一个起点,而不是罐中的解决方案: 用于扫描整个目录树。如果您只需要扫描一个文件夹,而不是整个树,那么您可以在不牺牲Python 3.5上的简单性(尤其是在Windows上)的情况下进行一些优化,新函数将在Windows上免费为您提供statinfo(并使其在*NIX系统上作为延迟缓存的值进
- 用于扫描整个目录树。如果您只需要扫描一个文件夹,而不是整个树,那么您可以在不牺牲Python 3.5上的简单性(尤其是在Windows上)的情况下进行一些优化,新函数将在Windows上免费为您提供
info(并使其在*NIX系统上作为延迟缓存的值进行访问)。在Python的早期版本中,PyPI上的第三方stat
模块提供了相同的接口scandir
- 如果不使用
,您将使用os.scandir
- 使用
从以MB为单位的文件大小映射到以MB为单位的collections.defaultdict(set)
文件大小(或者只需边走边处理文件,而不必存储在容器中)。或者,根据大小使用set
sorted
键进行排序,并使用
(使用任意MB粒度)对生成的文件进行分组itertools.groupby
- 用于扫描整个目录树。如果您只需要扫描一个文件夹,而不是整个树,那么您可以在不牺牲Python 3.5上的简单性(尤其是在Windows上)的情况下进行一些优化,新函数将在Windows上免费为您提供
info(并使其在*NIX系统上作为延迟缓存的值进行访问)。在Python的早期版本中,PyPI上的第三方stat
模块提供了相同的接口scandir
- 如果不使用
,您将使用os.scandir
- 使用
从以MB为单位的文件大小映射到以MB为单位的collections.defaultdict(set)
文件大小(或者只需边走边处理文件,而不必存储在容器中)。或者,根据大小使用set
sorted
键进行排序,并使用
(使用任意MB粒度)对生成的文件进行分组itertools.groupby
- 用于扫描整个目录树。如果您只需要扫描一个文件夹,而不是整个树,那么您可以在不牺牲Python 3.5上的简单性(尤其是在Windows上)的情况下进行一些优化,新函数将在Windows上免费为您提供
info(并使其在*NIX系统上作为延迟缓存的值进行访问)。在Python的早期版本中,PyPI上的第三方stat
模块提供了相同的接口scandir
- 如果不使用
,您将使用os.scandir
- 使用
从以MB为单位的文件大小映射到以MB为单位的collections.defaultdict(set)
文件大小(或者只需边走边处理文件,而不必存储在容器中)。或者,根据大小使用set
sorted
键进行排序,并使用
(使用任意MB粒度)对生成的文件进行分组itertools.groupby
- 用于扫描整个目录树。如果您只需要扫描一个文件夹,而不是整个树,那么您可以在不牺牲Python 3.5上的简单性(尤其是在Windows上)的情况下进行一些优化,新函数将在Windows上免费为您提供
info(并使其在*NIX系统上作为延迟缓存的值进行访问)。在Python的早期版本中,PyPI上的第三方stat
模块提供了相同的接口scandir
- 如果不使用
,您将使用os.scandir
- 使用
从以MB为单位的文件大小映射到以MB为单位的collections.defaultdict(set)
文件大小(或者只需边走边处理文件,而不必存储在容器中)。或者,根据大小使用set
sorted
键进行排序,并使用
(使用任意MB粒度)对生成的文件进行分组itertools.groupby