python - 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
我希望已经清楚:)
解决方案
推荐阅读
- c - 使用 C 合并链表
- r - stat_function 没有过渡到 transition_states
- c++ - 消除指向重载的 const 成员函数和成员运算符的指针
- python - Tornado http 服务器 - 无法加载响应数据 - 反应应用程序块
- firebase - flutter firebase 从 Firestore 获取数组并将其分配给列表
- javascript - 使用 HTML 更改用户输入或 URL 的单选按钮或下拉菜单
- hazelcast-jet - Hazlecast Jet Cluster 处理重复项
- python - Tensorflow Keras - UnknownError:UnidentifiedImageError
- javascript - React 本机应用程序检测后台应用程序活动
- listview - 包含 ListView 的 Xamarin.Forms 滚动屏幕