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中三种命令行参数利用方式详解

    Python中三种命令行参数利用方式详解

    Python的命令行参数,提供了很多有用的功能,可以方便调试和运行,这篇文章主要给大家介绍了关于Python中三种命令行参数利用方式的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Python中的 sort 和 sorted的用法与区别

    Python中的 sort 和 sorted的用法与区别

    这篇文章主要介绍了Python中的 sort 和 sorted的用法与区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 详解python中的变量

    详解python中的变量

    这篇文章主要为大家详细介绍了python的变量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Python 余弦相似度与皮尔逊相关系数 计算实例

    Python 余弦相似度与皮尔逊相关系数 计算实例

    今天小编就为大家分享一篇Python 余弦相似度与皮尔逊相关系数 计算实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • pytest多重断言的实现

    pytest多重断言的实现

    本文主要介绍了pytest多重断言的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python threading的使用方法解析

    Python threading的使用方法解析

    这篇文章主要介绍了Python threading的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python tkinter控件样式详解

    Python tkinter控件样式详解

    tkinter对控件的诸多属性提供了可定制的功能,下面以最常用的按钮作为示例,集中展示其样式特点,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-09-09
  • Python实现视频裁剪的示例代码

    Python实现视频裁剪的示例代码

    这篇文章主要介绍了如何通过Python实现视频裁剪,可以将视频按照自定义尺寸进行裁剪,文中的示例代码简洁易懂,感兴趣的可以了解一下
    2022-01-01
  • python使用pypdf2实现pdf文档解密

    python使用pypdf2实现pdf文档解密

    利用pypdf2完成pdf的解密,这里的事例是python3环境下的,当然python2下也可以运行,只需要修改名称即可,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • 基于Pytorch实现分类器的示例详解

    基于Pytorch实现分类器的示例详解

    这篇文章主要为大家详细介绍了如何基于Pytorch实现两个分类器: softmax分类器和感知机分类器,文中的示例代码讲解详细,需要的可以参考一下
    2023-04-04

最新评论