码迷,mamicode.com
首页 > 编程语言 > 详细

Python文件遍历二种方法

时间:2014-07-08 11:54:10      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   文件   

分享下有关Python文件遍历的两种方法,使用的OS模块的os.walk和os.listdir实现。

关于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文件遍历二种方法,布布扣,bubuko.com

Python文件遍历二种方法

标签:style   blog   http   color   使用   文件   

原文地址:http://www.cnblogs.com/cfinder010/p/3830752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!