python glob.glob根据字符串中的数字排序

本文介绍了一种方法,通过Python的glob.glob和sorted函数获取并整理文件名,特别针对非规范命名的文件,通过字符串操作将其转换为有序排列,便于后续分析。通过def str_transform()函数,将10-12号数字前补0,确保文件按数字顺序排列。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用glob.glob获取文件名列表后,需要对列表重新排序,但是不规范的命名会让排序变得困难,这里提供一个简单的方法实现文件的重命名和排序。
在使用sorted对list进行排序时,我们期望得到按照‘1,2,3,4,5…,10’这样的顺序排列,但是可能会得到‘1,10,100,2,3,4…‘,因此在后续分析中就会存在一些问题。
例如,glob.glob获得了list(未全部列出)
在这里插入图片描述
在用sorted排序后得到
在这里插入图片描述
显然我想把10,11,12三个文件排在后面,因此

def str_transform(files):
    for i in range(len(files)):
        try:
            string = int(files[i][11:13])
        except:
            files[i] = files[i][:11]+'0'+files[i][11:]

    return sorted(files)

这样就结束了上述问题
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值