python如何按照自己顺序读出文件名

 更新时间:2023年08月17日 08:54:25   作者:JackWang(dog)  
这篇文章主要介绍了python如何按照自己顺序读出文件名问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

情景再现

在做一个批量读取文件夹txt文件内容后,将文件内容写入excel表格的简单脚本时使用到了os.listdir()函数。

当脚本完成后检查excel表格内容时发现表格内容顺序和txt文件顺序不一样,这就导致我剩下的工作全部GG(超级难受)。

然后就去着手解决python os.listdir()读出顺序乱序问题。

为什么os.listdir()读出会乱序?

我也不知道,那位大佬知道了麻烦评论教教我!!!!!

解决乱序(即按照自己的要求排序)

首先看一般情况下读出顺序:

files= os.listdir(path) #得到文件夹下的所有文件名称

读出的文件顺序是:

在这里插入图片描述

而在文件夹中所显示的文件排列顺序确实这样的:

在这里插入图片描述

这个顺序是不是很让人摸不到头脑。

该怎么按照我们想要的顺序排列呢?

我后来想一想,这读出来的文件名字不就一列表嘛,我们把这个列表按我们想要的顺序排列好不就可以啦。

我们可以看到文件夹中的排序方式是先按照cache后的数字排序然后再按照第五个字母 a,b,s排序。

所以我们就按照这个方式来排序。

def takeNumber(elem): #获取cache后面的数字
    pattern = re.compile('cache(.+).txt')
    num = int(pattern.findall(elem)[0])
    return num
files= os.listdir(path) #得到文件夹下的所有文件名称
txts = []
all_data = []
files.sort(key=takeNumber)
files.sort(key= lambda x: x[4])   #lambda函数也叫匿名函数,即,函数没有具体的名称

最后看结果就是我们想要的顺序:

在这里插入图片描述

总结

总而言之,读出文件的顺序可以转化为对列表的排序。这类排序没有固定的方法,见招拆招,兵来将挡,水来土掩才是好办法。

另外,对于正则表达式和lambda匿名函数也要有一定的了解才能做好(别问我是怎么知道的,菜鸡落泪)。

以上仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python数据分析之聚类分析(cluster analysis)

    python数据分析之聚类分析(cluster analysis)

    聚类分析本身不是一个特定的算法,而是要解决的一般任务。它可以通过各种算法来实现,这些算法在理解群集的构成以及如何有效地找到它们方面存在显着差异。这篇文章主要介绍了python数据分析之聚类分析(cluster analysis),需要的朋友可以参考下
    2021-11-11
  • Python运算符的应用超全面详细教程

    Python运算符的应用超全面详细教程

    Python运算符是为了实现数值或字符运算的特殊符号。Python运算符可以分为算术运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符、比较运算符、三目运算符等。接下来,我们就开始来学习这一堆符号吧
    2022-07-07
  • Python如何使用type()函数查看数据的类型

    Python如何使用type()函数查看数据的类型

    这篇文章主要介绍了Python如何使用type()函数查看数据的类型,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • Python VTK计算曲面的高斯曲率和平均曲率

    Python VTK计算曲面的高斯曲率和平均曲率

    这篇文章主要介绍了Python VTK计算曲面的高斯曲率和平均曲率,如何使用户Python版本的VTK计算曲面的高斯曲率并映射在曲面上。本例中使用了两个不同的表面,每个表面根据其高斯曲率和平均曲率着色,需要的朋友可以参考一下
    2022-04-04
  • Python Pygame实战之打砖块小游戏

    Python Pygame实战之打砖块小游戏

    打砖块最早是由雅达利公司开发的一款独立游戏,也是无数人的童年记忆。本文将利用Python中的Pygame模块制作经典的打砖块游戏,需要的可以参考一下
    2022-02-02
  • 在Python中预先初始化列表内容和长度的实现

    在Python中预先初始化列表内容和长度的实现

    今天小编就为大家分享一篇在Python中预先初始化列表内容和长度的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • 对Django中内置的User模型实例详解

    对Django中内置的User模型实例详解

    今天小编就为大家分享一篇对Django中内置的User模型实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python学生成绩管理系统简洁版

    Python学生成绩管理系统简洁版

    这篇文章主要为大家详细介绍了简洁版的Python学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Python中时间戳转换的实现

    Python中时间戳转换的实现

    时间和日期处理是至关重要的任务之一,本文介绍了在Python中使用time模块进行时间和时间戳之间的转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • python 多线程threading程序详情

    python 多线程threading程序详情

    这篇文章主要介绍了python 多线程threading程序详情,Thread类表示在单独的控制线程中运行的活动,下文相关资料需要的小伙伴可以参考一下
    2022-04-04

最新评论