使用python脚本使文件根据文件名中数字排序

问题描述

因为想要对图片做一个打标签操作,图片名字包含规律性的数字,windows系统下文件夹中图片都是按照文件名的数字进行呈现的,如下图:
在这里插入图片描述
而直接用python脚本遍历得到的文件名list,打印出来和上图中文件呈现顺序不同

在这里插入图片描述

解决办法

对python脚本中获得到文件夹名字进行使用lambda函数进行排序,具体情况具体分析,这次的场景就是把文件名中第一个数字和第二个数字取出来进行操作之后,就可以达到效果

具体代码如下:

img_path_s = "images"

img_rois = "img_rois"

img_dealed = []

f = open('labels.txt', 'w', encoding='utf-8')

for img_f in os.listdir(img_rois):

    img_dealed.append(img_f)

img_dealed.sort(key=lambda x: int(x.split('-')[0]) * 100  + int(x.split('-')[1].split('_')[0]) )

print(img_dealed)

for img_n in img_dealed:
    f.writelines(img_n + " " + '0' + '\n')

f.close()

参考

Python实现文件/文件夹名按字符串排序或者按数字排序

猜你喜欢

转载自blog.csdn.net/weixin_42280271/article/details/129302774