当前位置: 代码迷 >> python >> 在目录格式为page-0.ext的目录中排序文件并获取第一个文件
  详细解决方案

在目录格式为page-0.ext的目录中排序文件并获取第一个文件

热度:73   发布时间:2023-07-16 09:55:57.0

在一个目录中,所有文件的格式都是basename- {0-padded-index} .ext格式,如何才能按排序顺序获取这些文件。 文件名示例:

b3a7c672b9a34da68c4caab04f758cd2-000.png
b3a7c672b9a34da68c4caab04f758cd2-001.png
b3a7c672b9a34da68c4caab04f758cd2-002.png
...
b3a7c672b9a34da68c4caab04f758cd2-010.png
b3a7c672b9a34da68c4caab04f758cd2-011.png
...
b3a7c672b9a34da68c4caab04f758cd2-099.png
b3a7c672b9a34da68c4caab04f758cd2-100.png

0填充索引(001、002、010等)不固定。 可以是2位或更多零填充。 排序后,我可以得到第一个文件,这是真正的问题。

import os

filenames = os.listdir('path/to/directory')
filenames.sort(key=lambda s: int(s.rsplit('.', 1)[0].rsplit('-', 1)[1]))
first_one = filenames[0]

真正的窍门是sort的关键函数,它获取文件名的相关部分并将其转换为int 因此,所有文件名将按文件扩展名之前的编号排序

  相关解决方案