1

我有一个包含文件名的文件夹,如下所示。

1asdf0001.png

2asdf0002.png

3asdf0003.png

4asdf0004.png

5asdf0005.png

6asdf0001.png

7asdf0002.png

8asdf0003.png

9asdf0004.png

10asdf0001.png

11asdf0002.png

.

.

.

现在,我想根据文件的最后一位创建文件夹。

folder 1: 1asdf0001.png, 2asdf0002.png, 3asdf0003.png, 4asdf0004.png, 5asdf0005.png

folder 2: 6asdf0001.png, 7asdf0002.png, 8asdf0003.png, 9asdf0004.png

folder 3: 10asdf0001.png, 11asdf0002.png

我怎么能在python中做到这一点?我正在考虑使用“endswith”,但我不知道如何设置随机数。请帮助我。

4

1 回答 1

0

这是一种方法:

from itertools import groupby

l = ["1asdf0001.png","2asdf0002.png","3asdf0003.png","4asdf0004.png","5asdf0005.png","6asdf0001.png",
     "7asdf0002.png","8asdf0003.png","9asdf0004.png","10asdf0001.png","11asdf0002.png"]

grps = {}
for en, (key, grp) in enumerate(groupby(l, key=lambda x: int(x[0]) // 6)):
    grps['folder' + str(en)] = [x for x in grp]

print(grps)

{'folder0': ['1asdf0001.png', '2asdf0002.png', '3asdf0003.png', '4asdf0004.png', '5asdf0005.png'], 
 'folder1': ['6asdf0001.png', '7asdf0002.png', '8asdf0003.png', '9asdf0004.png'], 
 'folder2': ['10asdf0001.png', '11asdf0002.png']}

​</p>

于 2020-01-06T19:37:16.443 回答