我想根据文件大小将几个文件分组。但是,此大小必须在+ -200字节的间隔内。也就是说,如果一个文件重2698752字节,另一个文件重2698700字节,则它仍然适合同一组。因此,我们将获得一个文件夹的所有文件的多个列表,每个文件夹之间的大小接近200个字节。 像这样一个:
[ 'DataGridViewNumericUpDownElements.dll']
[ 'ExpandableGridView.dll']
['Important Document.jpg']
['P1080495.JPG', 'P1080495-2.JPG']
[ 'Redsn0w_win_0.9.15b3.zip']
通过使用itertools.groupby
,根据文件大小对文件进行分组相对容易。但是,我不明白如何在代码中实现间隔...的确,我当前的代码将具有相同大小的文件分组;
有人可以帮助我朝正确的方向前进吗? :)
这是我的代码:
import os
import os.path
import itertools
#get the filenames in this directory
filenames = [filename for filename in os.listdir(".") if os.path.isfile(filename)]
filenames.sort(key=lambda name: os.stat(name).st_size)
#group by size and iterate
for size, items_iterator in itertools.groupby(filenames, key=lambda name: os.stat(name).st_size):
items = list(items_iterator)
print items
我希望已经很清楚了:)