Python / перегруппировать несколько файлов в списке в соответствии с их размерами с интервалом

Я хотел бы сгруппировать несколько файлов в папке в соответствии с их размером. Тем не менее, этот размер должен быть в пределах + -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

Надеюсь было понятно:)

0 ответов

Другие вопросы по тегам