您的位置:首页 > 编程语言 > Python开发

python包装os.walk遍历目录树

2012-07-03 12:51 281 查看
#********************************************
# filename: all_files.py
# Author:   xiyang
# email:    sdlgxxy@gmail.com
# date:     2012-7-2
# description:
#   包装os.walk实现目录树的遍历,提供更加完善的功能,
#   比如文件过滤、单层遍历等
#*********************************************
import os,fnmatch

def all_files(root,patterns='*',single_level=False,yield_folders=False):
patterns = patterns.split(';')
print root
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

if __name__ == '__main__':
for path in all_files('f:/workspace/python/','*.txt;*.log'):
print path


在实际应用中目录遍历是一个很常用的功能,通过以上的包装有以下几点好处:

可以实现文件后缀的过滤

实现文件夹的遍历

实现文件名的排序

在实际的应用中,可以根据情况自己扩展。

参考:python cookbook
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: