python sort按照制定规则排序

 当使用os.listdir()时,会导致文件乱序,使用sort不好使,这时需要根据文件特定命名规则去处理一下。

下面两个文件名称中间部分为按时间排序的:

 name1_32.2020.3.25.14.55.187000.jpg

name1_32.2020.3.25.9.58.186500.jpg

 通过lambda匿名函数,将namelist中的每个元素执行map()映射,转换为int类型,最后在外转换为list,然后sort会根据namelist中每个元素对应位置,以int类型做排序,即2020.3.25.24.55.187000

会被分割为['2020','3','25','24','55','187000'],通过map做映射后会返回tuple,通过list(),转换回列表,sort函数就可以通过列表中的对应位置依次做比较,得到最终排序结果。

namelist = ['name1_32.2020.3.25.9.58.186500.jpg', 'name1_32.2020.3.25.14.55.187000.jpg']
name_list.sort(key=lambda ele: list(map(int, ele.split('.')[1:-1])))

你可能感兴趣的:(python,python)