Python中文件遍历的两种方法
作者:junjie 时间:2022-01-28 20:34:03
关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历。
方法一:利用os.walk
os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中。
import os
def walk_dir(dirname):
for root,dirs,files in os.walk(dirname):
for f in files:
yield os.path.join(root, f)
方法二:利用os.listdir()
这个方法也比较简单,列出目录然后判断是不是文件夹,不是的话直接返回文件路径,是的话递归调用。
import os
def walk_dir2(dirname):
for d in os.listdir(dirname):
path = os.path.join(dirname, d)
if os.path.isdir(path):
#note recursive in for...in...
for f in walk_dir2(path):
yield f
else:
yield path
这里值得一提的是,由于函数中使用了yield,所以会被认为是一个generater,递归调用的时候也需要放到for循环中,否则函数并不会被真正执行。最新的Python 3.3中引入了yield from语法,可以解决上面的问题。
标签:Python,文件遍历
0
投稿
猜你喜欢
MS SQL 查询数据在数据库中所在行
2009-04-26 19:36:00
Python批量修改图片分辨率的实例代码
2023-01-30 01:59:10
使用Anaconda3建立虚拟独立的python2.7环境方法
2023-10-01 20:10:43
Python高级特性 切片 迭代解析
2022-03-28 14:32:49
详解MySQL中的缓冲池(buffer pool)
2024-01-26 01:05:53
python实现查找excel里某一列重复数据并且剔除后打印的方法
2021-01-23 10:27:45
图文详解Mysql使用left join写查询语句执行很慢问题的解决
2024-01-13 17:14:52
asp如何建立和删除文件夹?
2009-11-26 20:34:00
ExtJs事件机制基本代码模型和流程解析
2024-05-03 15:59:14
Access报错:文件共享锁定数溢出
2009-03-21 18:32:00
教你使用Python的pygame模块实现拼图游戏
2022-06-28 03:20:20
Python基于递归算法求最小公倍数和最大公约数示例
2021-07-20 09:36:23
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2021-02-11 11:15:33
Debian中完全卸载MySQL的方法
2024-01-25 19:25:34
python实现的二叉树算法和kmp算法实例
2023-08-07 20:50:49
10分钟彻底搞懂Http的强制缓存和协商缓存(小结)
2024-04-17 10:09:08
C语言实现二叉搜索树的完整总结
2023-11-26 11:20:43
用MySQL做站点时如何记录未知错误的发生
2010-09-30 14:11:00
JavaScript中字符串的常用操作方法及特殊字符
2024-04-17 10:36:26
Python使用PyAV提取视频关键帧的实践
2023-04-29 23:45:04