【问题标题】:How can I organize files by looking at last digits of the file names in python?如何通过查看 python 中文件名的最后一位来组织文件?
【发布时间】:2020-01-06 19:20:53
【问题描述】:

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

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”,但我不知道如何设置随机数..请帮助我。

【问题讨论】:

  • 你试过什么?您可以使用正则表达式接收号码(\d+)\.png,然后根据号码进行分类
  • 10asdf0001.png 进入文件夹 1 还是文件夹 2 是否重要?

标签: python filenames os.walk reorganize


【解决方案1】:

这是一种方法:

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']}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多