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中用于处理字符串的center()方法
May 18 Python
python 读写中文json的实例详解
Oct 29 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
Feb 20 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
详解Python GUI编程之PyQt5入门到实战
Dec 10 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 Python
Python标准库pathlib操作目录和文件
Nov 20 Python
Python数组变形的几种实现方法
May 30 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
基于jquery的一个浮动框(扩展性比较好 )
2010/08/27 Javascript
js调用打印机打印网页字体总是缩小一号的解决方法
2014/01/24 Javascript
jquery实现图片按比例缩放示例
2014/07/01 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
jQuery超酷平面式时钟效果代码分享
2020/03/30 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
JS产生随机数的几个用法详解
2016/06/22 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
node.js通过url读取文件
2020/10/16 Javascript
解决ant-design-vue中menu菜单无法默认展开的问题
2020/10/31 Javascript
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
Python下Fabric的简单部署方法
2015/07/14 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python如何对实例属性进行类型检查
2018/03/20 Python
使用PyCharm创建Django项目及基本配置详解
2018/10/24 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
Python实现的文轩网爬虫完整示例
2019/05/16 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
综合办公室主任职责
2013/12/16 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
财务管理职业生涯规划书
2014/02/26 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
公司贷款承诺书
2014/05/30 职场文书
教师节座谈会主持词
2015/07/03 职场文书
朋友离别感言
2015/08/04 职场文书
小学运动会开幕词
2016/03/04 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python