前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python按顺序读取文件夹中文件

Python按顺序读取文件夹中文件

作者头像
狼啸风云
修改于 2022-09-02 12:50:53
修改于 2022-09-02 12:50:53
9.9K00
代码可运行
举报
运行总次数:0
代码可运行

涉及到文件操作,我们有时候会读取一个文件夹中的所有的文件。这些文件可能是文件名完全混乱的,也可能是完全格式化的(如1.png,2.png...)。下面介绍Python中的几种按顺序(假如有)读取文件夹中文件的方法。

  首先不得不说的是python中的os.listdir()方法。 os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。功能是不是一目了然?

  但是,os.listdir()返回的文件名不一定是顺序的,这就要求我们对返回的文件名列表进行排序:

  假设我们有一个这样的文件夹:

   我们利用os.listdir()方法写出如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os


path = '/Users/apple/Desktop/OCR'

path_list = os.listdir(path)

path_list.remove('.DS_Store')    # macos中的文件管理文件,默认隐藏,这里可以忽略

print(path_list)

  输出结果如下:

  可见返回的文件名列表是一个奇怪的顺序。

  OK,既然os.listdir(path)返回的是文件名列表,那么列表不是可以排序吗,我只要用sort()方法,给列表中的文件名排个序不就好了?看看效果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
path = '/Users/apple/Desktop/OCR'

path_list = os.listdir(path)

path_list.remove('.DS_Store')    # 同上

path_list.sort()

print(path_list)

  输出结果如下:  

  可见,大致的顺序有了。但是糟糕的是10,11,12排到了2前面,这显然是因为sort()采取了按字符键值排序的手段。

  那么怎样解决这个问题呢?我们对代码稍作改变:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
path = '/Users/apple/Desktop/OCR'

path_list = os.listdir(path)

path_list.remove('.DS_Store')

path_list.sort(key=lambda x:int(x[:-4]))

print(path_list)

  新加入的一行做的事情是--对每个文件名将句号前的字符串转化为数字,然后以数字为key来进行排序。这样便能够按照我们的心意来排序了。动手试试看看~~

  使用的时候发现了新问题:这个手段要求文件名高度格式化,假如一堆图片中夹杂了一张其他格式的呢?比如13.jpeg,这样的话上面的代码会读到句号,转化不成int而报错。这时候不妨试试下面的方法。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
path = '/Users/apple/Desktop/OCR'

path_list = os.listdir(path)

path_list.remove('.DS_Store')

path_list.sort(key=lambda x:int(x.split('.')[0]))

print(path_list)

  这样写的话就只需考虑句号前面的数字顺序了,更有普适性。

  水到渠成,读取文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for filename in path_list:

    f = open(os.path.join(path,filename),'rb')

  总结一下:想要按顺序读取文件夹中的文件,方法不是固定的,对于不同的文件名见招拆招才是上策。实在不行咱们还可以动用我们的大杀器:正则表达式,只需要我们有一个善于发现文件名特征的眼睛就难不倒我们啦。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/08/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【说站】python如何读取文件名
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
很酷的站长
2022/11/24
1.4K0
【说站】python如何读取文件名
python 按顺序读文件夹下面的文件
方法一: import os path="/home/test/" #待读取的文件夹 path_list=os.listdir(path) path_list.sort() #对读取的路径进行排
狼啸风云
2020/08/10
2.5K0
python 按顺序读文件夹下面的文件
什么是md5码?如何使用Python读取文件md5码去重操作?
如果对于文件有一定了解,比如网络传输,上传、下载文件的话,那么对于md5值一定不会陌生,这是一个文件的标示或者记录,每个文件有自身的md5值,如果对文件做了修改,那么其md5值是一定会改变,所以我们可以看到在下载系统文件的时候都会提示核对md5值,以确认下载的系统文件是否缺失或者修改!
二爷
2023/09/02
7400
什么是md5码?如何使用Python读取文件md5码去重操作?
Python读取文件夹中的所有Excel文件名
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
哆哆Excel
2022/10/25
6.8K0
Python读取文件夹中的所有Excel文件名
python提升篇(十)---批量读取文件重命名
物体由于发生弹性形变,各部分之间存在着弹性力的相互作用而具有的势能叫做“弹性势能”。在工程中又称“弹性变形能”。例如,被压缩的气体、拉弯了的弓、卷紧了的发条、拉长或压缩了的弹簧都具有弹性势能。
用户5410712
2022/06/01
8750
python提升篇(十)---批量读取文件重命名
【Python】批量修改文件名
上面的代码读取文件时,可能会按照这个顺序 1->10>11>12… 这是因为默认读取文件会根据字符串大小进行读取,因此,要根据数字大小进行读取,需要对数字提取出来进行分割。我这里是使用空格进行分隔。
zstar
2022/06/14
2.7K0
Python文件夹与文件的操作
###Python文件夹与文件的操作 最近频繁的与文件操作打交道,这块比较弱,在百度上找到一篇比较不错的文章,这是原文的传送门 有关文件夹与文件的查找,删除等功能在os模块中实现,使用时需要导入这个模块: import os ####一、获取当前目录 s = os.getwd() s中保存的就是当前的目录(即文件夹) 下面是一个例子:将abc.py放在A文件夹,不管A放置在硬盘的哪个位置,都可以在A文件夹内生成一个新的文件夹。且文件夹的名字跟据时间自动生成: import os import time fi
xiangzhihong
2018/01/26
1.4K0
Python批量修改文件名,文件再多也只要一秒,省时又不闹心
对于电脑中的文件夹啊,我们那是新建一个又一个啊,有时候,我们整理资料的时候就会发现,文件夹那是一个杂乱无章,
全栈程序员站长
2022/11/17
5820
Python批量修改文件名,文件再多也只要一秒,省时又不闹心
图解python | 文件与目录操作
教程地址:http://www.showmeai.tech/tutorials/56
ShowMeAI
2022/02/23
9640
图解python | 文件与目录操作
Python文件的读写
说明:由于Windows和macOS文件目录系统的格式不同,在没有介绍到系统通配分隔符前,代码中的文件目录格式主要匹配macOS系统文件目录结构,下面是Python中常用的文件目录操作方法:
小雨coding
2020/07/27
1.6K0
Python中的系统内置模块#学习猿地
> 序列化是指可以把python中的数据,以文本或二进制的方式进行转换,并且还能反序列化为原来的数据
学习猿地
2020/03/17
1.1K0
Python中的系统内置模块#学习猿地
2022年最新Python大数据之Python基础【八】文件的操作与类
文章目录 1、文件的基本操作 2、文件的读取操作 3、文件的写入操作 4、文件的追加操作 5、文件读写模式拓展(了解,看到能明白意思即可) 6、文件备份案例 7、rename和remove 8、文件夹的操作 9、批量修改文件名案例 10、面向对象的思维方式 11、类和对象 12、类的定义 13.类的实例化 14、self 1、文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) 文件路径:可以写相对路径,也可以写绝对路径 读写模式:r(读取) w(写入) a(追
Maynor
2022/09/27
5200
一些我用得到的 Python 脚本
下面的python脚本有一部分是我百度然后修改的,一部分是我自己写的,如果以后有什么新的我用的到的脚本或者这些脚本有修改我也会在这里更新,这些源码放在这里仅以备份为目的
猫猫摸大鱼
2022/07/21
6400
python读取文件夹下所有图片文件_python删除某一列
如上图所示,楼主的face.py为读文件夹中所有文件的代码。file中存放的是多张图片。这两个文件都在根目录下,你也可以将他们两个放在其他的目录下,若不放在同一个目录下,则需要修改代码,才能运行成功。
全栈程序员站长
2022/10/01
2K0
python读取文件夹下所有图片文件_python删除某一列
Python: 复制文件和文件夹
文章背景: 工作中,经常需要拷贝数据,比如将仪器数据拷贝到指定路径。Python中的shutil模块可以用于文件和文件夹的复制。此外,也可以借助win32file模块来复制文件。
Exploring
2022/09/20
4.2K0
Python超详细基础文件操作(详解版)
with 语句是一种上下文管理器,当它的代码块执行完毕时,会自动关闭文件。这是推荐的方式,因为它确保文件在使用完毕后被正确关闭,即使发生异常也能保证关闭。
Python兴趣圈
2023/12/30
4480
Python超详细基础文件操作(详解版)
爬虫 (二十二) 最常见的文件操作模块(值得收藏) (十三)
相信如果你慢慢把这篇文章读完,然后加以实践,你会对 python 文件操作会有很大的理解,加油看完哦
公众号---人生代码
2020/01/14
9670
爬虫 (二十二) 最常见的文件操作模块(值得收藏) (十三)
Python文件处理实用指南
对文件的操作算是Python中一个基础又重要的知识点了,无论是在爬虫、数据分析、Web开发,还是在编写图形界面、进行数据分析,都有可能需要用到文件相关的操作。
州的先生
2020/09/08
1.5K0
Python文件处理实用指南
Python: 遍历文件夹内的所有文件
文章背景: 工作中,有时需要遍历工作夹内的所有文件,然后可以进一步操作文件。Python中的os.walk和os.listdir方法都可以实现遍历文件夹的功能,下面分别进行介绍。
Exploring
2022/09/20
7.3K0
Python: 遍历文件夹内的所有文件
Python 自动化办公之"你还在手动操作“文件”或“文件夹”吗?"
1、“罗永浩抖音首秀”销售数据的可视化大屏是怎么做出来的呢? 2、利用 Python 进行多 Sheet 表合并、多工作簿合并、一表按列拆分
杰哥的IT之旅
2020/06/18
8930
相关推荐
【说站】python如何读取文件名
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文