首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 资料过滤器

2012-10-10 
python 文件过滤器python实用技巧 : Filtering os.walk Created?on?Mar?7,?2010 @author:?Diego 需求:

python 文件过滤器
python实用技巧 : Filtering os.walk


'''
Created?on?Mar?7,?2010
@author:?Diego
需求: 得到某个目录下, 符合过滤条件的文件夹/文件.
实现: 将os.walk再次包装.
TODO: 不知道本程序的做法, 和传统的逐个目录列举的方法, 哪个效率更高. 待测试.
?'''
?import??os
?import??os.path
os.path.sep?=?"?/?"
path??=???"?/media/dev/project/google_codes/srgjs?"
EXCLUDE_DIR_LIST??=??[?"?.SVN?"?,?"?CVS?"?]
EXCLUDE_FILE_LIST??=??[?"?.CVSIGNORE?"?]
?def??is_parent_exclude(parentPath,excludeDirList):
????ss?=?parentPath.split(?"?/?"?);
?????for??s??in??ss:
?????????if?(s.upper()??in??excludeDirList):
?????????????return??True
????
?????return??False
?def??filter_walk(targetDirectory,excludeDirList,excludeFileExtList):
????dirList?=?[]
????fileList?=?[]
?????for??(parent,?dirs,?files)??in??os.walk(targetDirectory):
????????
?????????for??d??in??dirs:
?????????????if?(d.upper()??in??excludeDirList):
?????????????????continue
????????????
?????????????#?To?check?if?one?of?the?parent?dir?should?be?excluded.
??????????????if?(is_parent_exclude(parent,excludeDirList)):
?????????????????continue
????????????
????????????dirList.append(parent?+?"?/?"?+?d)
????????????
????????
?????????for??f??in??files:
?????????????if?(f.upper()??in??excludeFileExtList):
?????????????????continue
?????????????#?To?check?if?one?of?the?parent?dir?should?be?excluded.
??????????????if?(is_parent_exclude(parent,excludeDirList)):
?????????????????continue
????????????
????????????fileList.append(parent?+?"?/?"?+?f)
????
?????return??(dirList,fileList)????????????
?#?test
?dirs,files??=??filter_walk(path,EXCLUDE_DIR_LIST,EXCLUDE_FILE_LIST)
?for??d??in??dirs:
?????print??d
?for??f??in??files:
?????print??f

?

?

转自:http://reader.youdao.com/sharelite?itemId=3844466130777511435&method=viewSharedItemThroughLink&sharedBy=-1137845767117085734

?

热点排行