Python中文件遍历的两种方法
关于Python的文件遍历,大概有两种方法,一种是较为便利的os.walk(),还有一种是利用os.listdir()递归遍历。
方法一:利用os.walk
os.walk可以自顶向下或者自底向上遍历整个文件树,然后返回一个含有3个元素的tuple,(dirpath,dirnames,filenames),要注意的是,os.walk()会返回一个generater,所以调用的时候一定要放到for循环中。
importos defwalk_dir(dirname): forroot,dirs,filesinos.walk(dirname): forfinfiles: yieldos.path.join(root,f)
方法二:利用os.listdir()
这个方法也比较简单,列出目录然后判断是不是文件夹,不是的话直接返回文件路径,是的话递归调用。
importos
defwalk_dir2(dirname):
fordinos.listdir(dirname):
path=os.path.join(dirname,d)
ifos.path.isdir(path):
#noterecursiveinfor...in...
forfinwalk_dir2(path):
yieldf
else:
yieldpath
这里值得一提的是,由于函数中使用了yield,所以会被认为是一个generater,递归调用的时候也需要放到for循环中,否则函数并不会被真正执行。最新的Python3.3中引入了yieldfrom语法,可以解决上面的问题。
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短