Python中文件遍历的两种方法


Posted in Python onJune 16, 2014

关于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 相关文章推荐
python处理圆角图片、圆形图片的例子
Apr 25 Python
Python使用chardet判断字符编码
May 09 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
对Pycharm创建py文件时自定义头部模板的方法详解
Feb 12 Python
python3 写一个WAV音频文件播放器的代码
Sep 27 Python
Python networkx包的实现
Feb 14 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
Feb 29 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
Feb 05 Python
浅谈pytorch中的dropout的概率p
May 27 Python
Python里隐藏的“禅”
Jun 16 #Python
Python程序设计入门(5)类的使用简介
Jun 16 #Python
Python程序设计入门(4)模块和包
Jun 16 #Python
Python程序设计入门(3)数组的使用
Jun 16 #Python
Python程序设计入门(2)变量类型简介
Jun 16 #Python
Python程序设计入门(1)基本语法简介
Jun 13 #Python
Python对两个有序列表进行合并和排序的例子
Jun 13 #Python
You might like
一个SQL管理员的web接口
2006/10/09 PHP
php生成唯一的订单函数分享
2015/02/02 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
PHP session 会话处理函数
2016/06/06 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
js的回调函数详解
2015/01/05 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
Python里disconnect UDP套接字的方法
2015/04/23 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
python使用Plotly绘图工具绘制气泡图
2019/04/01 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
简单了解python数组的基本操作
2019/11/26 Python
在python shell中运行python文件的实现
2019/12/21 Python
TensorFlow MNIST手写数据集的实现方法
2020/02/05 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
美体小铺美国官网:The Body Shop美国
2017/11/10 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
户籍证明的格式
2014/01/13 职场文书
协议书的格式
2014/04/23 职场文书
结对共建工作方案
2014/06/02 职场文书
群众路线对照检查材料思想汇报怎么写
2014/09/18 职场文书
实习单位意见
2015/06/04 职场文书
创业计划书之熟食店
2019/10/16 职场文书