我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的。就比如读取下面这些文件,希望能够按照图中的顺序进行读取,但是

得到的结果却是这样:

['Comprehensive Risk Report_May 10_ 2019 9-00-39 AM 314.html',

'Comprehensive Risk Report_May 11_ 2019 9-00-40 AM 031.html',

'Comprehensive Risk Report_May 12_ 2019 9-00-42 AM 145.html',

'Comprehensive Risk Report_May 13_ 2019 9-00-43 AM 490.html',

'Comprehensive Risk Report_May 14_ 2019 9-00-13 AM 544.html',

'Comprehensive Risk Report_May 15_ 2019 9-00-23 AM 408.html',

'Comprehensive Risk Report_May 16_ 2019 9-00-34 AM 028.html',

'Comprehensive Risk Report_May 17_ 2019 9-00-36 AM 892.html',

'Comprehensive Risk Report_May 1_ 2019 9-00-05 AM 861.html',

'Comprehensive Risk Report_May 2_ 2019 9-00-36 AM 076.html',

'Comprehensive Risk Report_May 3_ 2019 9-00-40 AM 593.html',

'Comprehensive Risk Report_May 4_ 2019 9-00-46 AM 963.html',

'Comprehensive Risk Report_May 5_ 2019 9-00-50 AM 724.html',

'Comprehensive Risk Report_May 6_ 2019 9-00-53 AM 563.html',

'Comprehensive Risk Report_May 7_ 2019 9-00-54 AM 080.html',

'Comprehensive Risk Report_May 8_ 2019 9-00-37 AM 000.html',

'Comprehensive Risk Report_May 9_ 2019 9-00-37 AM 935.html']

而且在采用 file_lists.sort()  以及 sorted(file_lists()) 后,结果还是如此.

这是因为文件排序都是按字符串来的,不会特意给你分成数字,根据文件中字符在ascii码中的顺序,并且将字符串中每个字符作比较,得到结果。上面的 11和1_的问题,1相同,而后一位1在_前面,如果换成减号-那它就在1前面,或者将序号放在最后,那排序就正常了,这就是按中间字符排序会出现乱七八糟问题的原因

这时就需要自己根据文件自定义排序:

# 读取文件并进行排序

filelists = os.listdir(path)

sort_num_first = []

for file in filelists:

sort_num_first.append(int(file.split("_")[1].split(" ")[1])) # 根据 _ 分割,然后根据空格分割,转化为数字类型

sort_num_first.sort()

print(sort_num_first)

sorted_file = []

for sort_num in sort_num_first:

for file in filelists:

if str(sort_num) == file.split("_")[1].split(" ")[1]:

sorted_file .append(file)

思路很简单,就是把文件名根据 _ 和 空格 分割,得到中间的数字,然后进行排序;然后将排好的数字一一对应到相应的文件名,就得到了排好了的文件。

python遍历文件夹排序_python 顺序读取文件夹下面的文件(自定义排序方式)相关推荐

  1. python读取文件并且排序_python 顺序读取文件夹下面的文件(自定义排序方式)...

    我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...

  2. Python 按时间顺序读取所选目录下文件

    Python 按时间顺序读取所选目录下文件 不是很复杂,但用的次数比较频繁,作一个记录吧. import tkinter as tk from tkinter import filedialog im ...

  3. python中保存的文件怎么打开_python怎样读取文件 看完你学会了么

    python读取文件的方法有read(),readline(),readlines().今天咪咪我就来讲解一下python怎样读取文件. 工具/材料 电脑 python 3 vscode 操作方法 0 ...

  4. python 文件追加写入_Python写入文件–解释了打开,读取,追加和其他文件处理功能

    python 文件追加写入 欢迎 (Welcome) Hi! If you want to learn how to work with files in Python, then this arti ...

  5. python文件内容倒序_python倒序读取文件tail方式

    def get_last_line(file_path, max_line_number, buffer_size=4096): # 从末尾读取文件并返回以行组成的列表 ""&qu ...

  6. python获取pdf页数_Python分割指定页数的pdf文件方法

    Python分割指定页数的pdf文件方法 如下所示: from PyPDF2 import PdfFileWriter, PdfFileReader # 开始页 start_page = 0 # 截止 ...

  7. python的浮点数占字节_Python二进制文件读取并转换为浮点数详解

    本文所用环境: Python 3.6.5 |Anaconda custom (64-bit)| 引言 由于某些原因,需要用python读取二进制文件,这里主要用到struct包,而这个包里面的方法主要 ...

  8. python遍历字符串存入列表_Python遍历字符串的4种方式

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Python遍历字符串的4种方式 1.下标法 2.for in 3.iter内 ...

  9. 安卓读取mysql数据库文件路径_Android开发实现读取assets目录下db文件的方法示例...

    本文实例讲述了Android开发实现读取assets目录下db文件的方法.分享给大家供大家参考,具体如下: 最近准备打算写一个关于天气预报的app,偶然的机会在一大神的博客上看到了一个获取天气的api ...

最新文章

  1. 【剑指offer-Java版】31连续子数组的最大和
  2. iOS使用AVCaptureSession自定义相机
  3. .NET 6 中的 Logging Source Generator
  4. egg前面加什么_国威说阀:阀门前面为什么加国标美标日标之类的?
  5. [转]关于凸优化的一些简单概念
  6. Redis 基本数据类型试炼
  7. oracle 存储中文 u码,Oracle 汉字 占位
  8. 赫尔默特方差分量估计Python
  9. Hadoop开发环境搭建
  10. 【项目实践】充电台灯电路拆解
  11. c语言智能车跑道检测程序,基于金属检测的智能循迹小车设计
  12. 计算机10秒后重新启动,电脑主机开机几秒或者几十秒自动断电关机
  13. 为什么只看重结果_只注重结果不注重过程的话
  14. mac linux 笔记
  15. 用计算机唱歌 丑八怪乐谱,得力计算器乐谱丑八怪 | 手游网游页游攻略大全
  16. 短视频的地方搞笑配音怎么做?分享一个小技巧,不会方言也能配
  17. 宝塔php安全模式,windows server 2016关闭IE增强安全模式方法
  18. Linux学习笔记—Apache
  19. 支付项目:9、购物车模块
  20. 使用Python调用有道翻译接口实现翻译任务

热门文章

  1. STM32+esp8266,让你的STM32开发板连接网络-----esp8266
  2. 古希腊陶器之01粘土球形花瓶
  3. 【新学期、新Flag】那年花开月正圆,我,正青春
  4. 词性标注HMM模型之TnT — A Statistical Part-of-Speech Tagger (2000) 论文解读
  5. sudo命令使用方法
  6. 微信小程序wxss布局属性-全
  7. JS日期时间比较大小(绝对干货)
  8. 一年时间学会日语英语计算机可能么,上海开放大学和上海应用技术大学哪个好,高三选地理能报考上海大学日语系或英语系吗?...
  9. 华为p50预计售价鸿蒙是什么,华为P50什么时候发布上市时间及价格预测
  10. Python生成+识别二维码