Python文件遍历二种方法
2014-07-08 06:00
405 查看
分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现。
关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历。
方法一:利用os.walk
os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath, dirnames, filenames)。
注意,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中。
方法二:利用os.listdir()
这个方法也比较简单,列出目录然后判断是不是文件夹,不是的话直接返回文件路径,(脚本学堂 www.jbxue.com)是的话递归调用。
注意,由于函数中使用了yield,所以会被认为是一个generater,递归调用的时候也需要放到for循环中,否则函数并不会被真正执行。
最新的Python 3.3中引入了yield from语法,可以解决上面的问题。
关于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()
这个方法也比较简单,列出目录然后判断是不是文件夹,不是的话直接返回文件路径,(脚本学堂 www.jbxue.com)是的话递归调用。
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中遍历文件的3个方法
- Python遍历文件夹和读写文件的方法
- python3 遍历删除特定后缀名文件的方法
- Python利用递归和walk()遍历目录文件的方法示例
- python,遍历文件的方法
- Python遍历目录中的所有文件的方法
- Python三种遍历文件目录的方法实例代码
- python中遍历文件的3个方法
- Python os.walk() 方法遍历文件目录
- Python中文件遍历的两种方法
- Python遍历文件夹和读写文件的方法
- 用Python遍历C盘dll文件的方法
- Python遍历文件夹和读写文件的实现方法
- python 遍历文件(夹) 的os.walk方法
- python中遍历文件的3个方法
- Python遍历指定文件及文件夹的方法
- Python遍历指定文件及文件夹的方法
- python遍历文件夹,并进行文件读取的方法
- Python遍历文件夹和读写文件的方法