Cookbook 笔记:python 遍历目录树


#!/usr/env/bin python
#-*- coding:utf-8 -*-
import os
import fnmatch
def filelist(root, patterns='*', single_level=False, yield_folders=False):
    patterns = patterns.split(';')
    for path, subdirs, files in os.walk(root):
        if yield_folders:
            files.extend(subdirs)
        files.sort()
        for name in files:
            for pattern in patterns:
                if fnmatch.fnmatch(name, pattern):
                    yield os.path.join(path, name)
                    break
        if single_level:
            break
#os.walk的简单使用
def file(root):
    for path, subdirs, files in os.walk(root):
        files.sort()
        for f in files:
            print path,f

if __name__=='__main__':
    for path in filelist('/home/jd/test','*.py'):
        print path
    print '++++++++++++++++++++++++++++++'
    file('/home/jd/test')

os.walk()生成一个包含三个子项目的元组。

  dirpath:一个字符串,表示当前目录的路径;  
  dirname:一个由子目录名称组成的列表,这些子目录是当前目录的直接子目录;      
  filenames:由当前目录下的文件名称组成的列表,使用os.path.join(dirpath,name) 得到文             件全路径

相关
Python之os.walk和os.path.walk

你可能感兴趣的:(Cookbook 笔记:python 遍历目录树)