我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 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)

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

转载于:https://www.cnblogs.com/BackingStar/p/10923706.html

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

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

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

  2. python遍历文件夹排序_python 顺序读取文件夹下面的文件(自定义排序方式)

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

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

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

  4. python 按顺序读文件夹下面的文件

    参考 python 按顺序读文件夹下面的文件 - 云+社区 - 腾讯云 方法一: import ospath="/home/test/" #待读取的文件夹path_list=os. ...

  5. python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...

    最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...

  6. python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...

    python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...

  7. python遍历读取文件夹下所有文件内容_python遍历文件夹下所有文件

    python遍历文件夹下所有文件的方法:首先打开相应的代码文件:然后通过"for f in files:print(os.path.join(root, f))"方式遍历所有的文件 ...

  8. [云炬Python学习笔记] Python读取指定文件夹下的文件

    1 # -*- coding: utf-8 -*-2 import csv3 import os4 import pandas as pd5 #提取文件夹下的地址+文件名,源文件设定排序规则6 def ...

  9. python自动整理文件夹_计算机文件和文件夹的Python自动管理,自动化,电脑,及

    目录 一.输出目录所在的文件以及文件夹 import os print(os.getcwd())#获得当前文件的地址 print(os.path.join('MyProjects','AI'))#让P ...

  10. python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...

    # python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...

最新文章

  1. Android设计模式-观察者模式
  2. STM32硬件错误HardFault_Handler的处理方法
  3. 理解Python中整型对象存储的位置
  4. 5939. 半径为 k 的子数组平均值
  5. 操作系统学习笔记目录(暂时不全223)
  6. Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
  7. 1005. 继续(3n+1)猜想 (25) PAT乙级真题
  8. Codeforces edu 88(A~E)
  9. 走过电竞之路的程序员
  10. mysql jemalloc_MySQL性能测试--jemalloc内存管理
  11. 推荐 10 个好用的 JavaScript 代码压缩工具
  12. 新浪云服务器 java 部署
  13. 光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”
  14. 让 Odoo POS 支持廉价小票打印机
  15. 奔驰A200L升级内饰氛围灯,发光涡轮等,绚丽多彩,温馨又惬意
  16. inprivate浏览是什么意思_保护Internet隐私,打开IE浏览器InPrivate浏览默认情况下...
  17. 解决安卓PIE无法运行问题
  18. Java 编译与反编译
  19. 七日年化收益率(折线图)
  20. 正版软件 Windows系统、Office 软件、Microsoft 365 合集

热门文章

  1. 郑大计算机课程表,郑州大学研究生课程表.doc
  2. c语言函数cot怎么表示,谁知道三角函数sin,cos,tan,cot之间的换算公式?
  3. Hive DDL 数据定义语言
  4. HTML5设计网页动态条幅广告(Banner) 已经加上完整源代码
  5. 设计模式:设计模式经典总结
  6. 夜深人静写算法(十二)- 凸包
  7. 恒生电子:控股股东恒生集团股权变更已完成工商变更登记手续
  8. 知道如何防止域名被封,干货!赶紧收藏
  9. 呦呦鹿鸣,食野之苹-- 给新生儿的一封信
  10. 蓝桥杯算法训练——调和数列问题