python中的for in finder.find_python包装os.walk遍历目录树

#********************************************

# 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值