<!-- lang: 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