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深入学习之内存管理
Aug 31 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
对于Python中RawString的理解介绍
Jul 07 Python
windows下添加Python环境变量的方法汇总
May 14 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python中的取模运算方法
Nov 10 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
python中count函数简单用法
Jan 05 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
浅谈Python中的函数(def)及参数传递操作
May 25 Python
Python实现机器学习算法的分类
Jun 03 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
windows环境下php配置memcache的具体操作步骤
2013/06/09 PHP
php内嵌函数用法实例
2015/03/20 PHP
php获取指定范围内最接近数的方法
2015/06/02 PHP
accesskey 提交
2006/06/26 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
angular ng-repeat数组中的数组实例
2017/02/18 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
JavaScrip如果基于url实现图片下载
2020/07/03 Javascript
python实现排序算法
2014/02/14 Python
Python编程中的反模式实例分析
2014/12/08 Python
python中threading超线程用法实例分析
2015/05/16 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
详解Anaconda 的安装教程
2020/09/23 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
给老婆的搞笑检讨书
2014/01/12 职场文书
一分钟演讲稿
2014/04/30 职场文书
主题教育活动总结
2014/05/05 职场文书
集体生日活动方案
2014/08/18 职场文书
干部个人对照检查材料
2014/08/25 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
学校通报表扬范文
2015/05/04 职场文书
《牧场之国》教学反思
2016/02/22 职场文书
导游词之日月潭
2019/11/05 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers