Python 在格式为page-0.ext的目录中对文件进行排序并获取第一个文件
在一个满是basename-{0-padded-index}.ext格式文件的目录中,如何按排序顺序获取这些文件。文件名示例:Python 在格式为page-0.ext的目录中对文件进行排序并获取第一个文件,python,python-2.7,Python,Python 2.7,在一个满是basename-{0-padded-index}.ext格式文件的目录中,如何按排序顺序获取这些文件。文件名示例: b3a7c672b9a34da68c4caab04f758cd2-000.png b3a7c672b9a34da68c4caab04f758cd2-001.png b3a7c672b9a34da68c4caab04f758cd2-002.png ... b3a7c672b9a34da68c4caab04f758cd2-010.png b3a7c672b9a34da68c
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等)不固定。它可以是两位数或更多的零填充。
一旦排序,我可以得到第一个文件,这是真正的问题
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
。因此,所有文件名都将按照文件扩展名前面的数字进行排序。让我检查一下。