使用Python读取文件夹中的图名并按权重排序后写入excel

本文介绍如何使用Python对图片文件名进行解析,根据括号或字母顺序对数字进行排序,然后将文件名写入Excel表格,以确保文件的组织性。作者通过实例展示了如何处理不同形式的图名,并通过try-except结构进行适配。
摘要由CSDN通过智能技术生成


一、任务说明

将图片名称写入excel,刚开始参考他人博客写了一个但是发现写入时没有按照想要的顺序。因此修改了代码。
总体思想是通过split函数将图名进行分割,获取到图名中的数字使其从小到大排列,再写入excel,由于图名的形式不同,需要进行不同的处理,因此使用到了try函数。
在这里插入图片描述

二、代码示例

代码如下(示例):

import os
import re

import xlwt
p="G:/test folder"#
datas=os.listdir('C:/Users/Littlesydney/Desktop/11.4标注文件夹/已标注待测试图片1-30/乱序版')
datas=list(datas)
a = xlwt.Workbook(encoding='utf-8')
s = a.add_sheet('sheet表名',cell_overwrite_ok=True)
def takeNumber(elem): #elem和 em均为获取到的图名
   try:# 图名为 b4-(3).jpg的样式
       b = elem.split(")")
       num = b[0].split("(")
       fnum=int(num[1])#一定要化成数型,如果是文本型无法成功进行排序
       print(fnum)
       return fnum
   except:# 图名为 127.jpg的样式
       b=elem.split(".")
       num=int(b[0])
       return num

def takeNumber2(em):
    try:
        b = em.split("-")
        num=b[0].split("b")
        fnum=int(num[1])
        return fnum
    except:
        return 0
txts = []
all_data = []
datas.sort(key=takeNumber)# 先对括号内的数字进行排序,权值就是该函数返回的数值
datas.sort(key=takeNumber2)# 再对 b后的数字进行排序,如果没有b开头则默认为 0
i=0
for x in datas:
        s.write(i,0,x)
        i=i+1
a.save('Exce1表.xls')
print(datas)

三、结果

在这里插入图片描述
在这里插入图片描述

总结

小白的学习记录,如有问题请大家积极指出。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值