python 顺序读取文件夹下面的文件(自定义排序方式)
我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 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 顺序读取文件夹下面的文件(自定义排序方式)相关推荐
- python读取文件并且排序_python 顺序读取文件夹下面的文件(自定义排序方式)...
我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...
- python遍历文件夹排序_python 顺序读取文件夹下面的文件(自定义排序方式)
我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...
- Python 按时间顺序读取所选目录下文件
Python 按时间顺序读取所选目录下文件 不是很复杂,但用的次数比较频繁,作一个记录吧. import tkinter as tk from tkinter import filedialog im ...
- python 按顺序读文件夹下面的文件
参考 python 按顺序读文件夹下面的文件 - 云+社区 - 腾讯云 方法一: import ospath="/home/test/" #待读取的文件夹path_list=os. ...
- python怎么读文件夹下的文件夹-python2.7读取文件夹下所有文件名称及内容的方法...
最近稍稍有点空闲时间,于是重新温习了一下之前学习过的python基础.废话不多说,记录一下自己的所得. 首先,安装什么的不在本人的温习范围,另,本人使用的是windows下的python2.7版本,且 ...
- python读取文件夹下所有文件的名称_python2.7 学习之读取文件夹下所有文件名称及内容...
python2.7 学习之读取文件夹下所有文件名称及内容 最近稍稍有点空闲时间, 于是重新温习了一下之前学习过的 python 基础废话不多说, 记录一下自己的所得 首先, 安装什么的不在本人的温习范 ...
- python遍历读取文件夹下所有文件内容_python遍历文件夹下所有文件
python遍历文件夹下所有文件的方法:首先打开相应的代码文件:然后通过"for f in files:print(os.path.join(root, f))"方式遍历所有的文件 ...
- [云炬Python学习笔记] Python读取指定文件夹下的文件
1 # -*- coding: utf-8 -*-2 import csv3 import os4 import pandas as pd5 #提取文件夹下的地址+文件名,源文件设定排序规则6 def ...
- python自动整理文件夹_计算机文件和文件夹的Python自动管理,自动化,电脑,及
目录 一.输出目录所在的文件以及文件夹 import os print(os.getcwd())#获得当前文件的地址 print(os.path.join('MyProjects','AI'))#让P ...
- python pandas合并多个excel_python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)...
# python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...
最新文章
- Android设计模式-观察者模式
- STM32硬件错误HardFault_Handler的处理方法
- 理解Python中整型对象存储的位置
- 5939. 半径为 k 的子数组平均值
- 操作系统学习笔记目录(暂时不全223)
- Linux平台 Oracle 11gR2 RAC安装Part1:准备工作
- 1005. 继续(3n+1)猜想 (25) PAT乙级真题
- Codeforces edu 88(A~E)
- 走过电竞之路的程序员
- mysql jemalloc_MySQL性能测试--jemalloc内存管理
- 推荐 10 个好用的 JavaScript 代码压缩工具
- 新浪云服务器 java 部署
- 光云科技快麦ERP正式入选阿里云原生合作伙伴计划,赋能企业“新基建”
- 让 Odoo POS 支持廉价小票打印机
- 奔驰A200L升级内饰氛围灯,发光涡轮等,绚丽多彩,温馨又惬意
- inprivate浏览是什么意思_保护Internet隐私,打开IE浏览器InPrivate浏览默认情况下...
- 解决安卓PIE无法运行问题
- Java 编译与反编译
- 七日年化收益率(折线图)
- 正版软件 Windows系统、Office 软件、Microsoft 365 合集