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
python实用技巧 : Filtering os.walk(转)的更多相关文章
- Python 实用技巧
模块相关 导入模块时,可以通过模块的 __file__ 属性查看模块所在磁盘的路径位置,参考:关于Python包和模块的10个知识清单 Pip 安装Pip 方法一: sudo apt-get purg ...
- python 简单示例说明os.walk和os.path.walk的不同
import os,os.path def func(arg,dirname,names): for filespath in names: print os.path.join(dirname,fi ...
- python实用技巧之任务切分
Python 大任务切分小任务 今天来说说,Python中的任务切分.以爬虫为例,从一个存 url 的 txt 文件中,读取其内容,我们会获取一个 url 列表.我们把这一个 url 列表称为大任务. ...
- Python实用技巧
1.改变工作目录 import os os.chdir('C:/Users/Mr.Zhao') 2.搜索制定目录下的文件 1 import glob 2 glob.glob('C:/User/Mr.Z ...
- python 实用技巧:几十行代码将照片转换成素描图、随后打包成可执行文件(源码分享)
效果展示 原始效果图 素描效果图 相关依赖包 # 超美观的打印库 from pprint import pprint # 图像处理库 from PIL import Image # 科学计算库 imp ...
- python中os.walk浏览目录和文件
#!/usr/bin/env python # 2.py # use UTF-8 # Python 3.3.0 # os.walk()的使用 import os # 枚举dirPath目录下的所有文件 ...
- Python os.walk文件遍历用法【转】
python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...
- Python 之 os.walk()
原文地址https://www.cnblogs.com/JetpropelledSnake/p/8982495.html http://www.runoob.com/python/o ...
- Python入门之os.walk()方法
os.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks=False) 可以得到一个三元 ...
随机推荐
- linux cfs 负载均衡
确定新的负载的时候,代码中给出的公式是: (old×(2^i-1) + new))/2^i 整理下来是: old + (new-old)/2^i i的范围是[1, 4],也就是说,i的层级越高,那么n ...
- Java语言常用的运算符和表达式详解
Java提供了丰富的运算符,如算术运算符.关系运算符.逻辑运算符.位运算符等等.Java的表达式就是用运算符连接起来的符合Java规则的式子.运算符的优先级决定了表达式中运算执行的先后顺序.在编写程序 ...
- [Leetcode] Same tree判断是否为相同树
Given two binary trees, write a function to check if they are equal or not. Two binary trees are con ...
- BZOJ1103 [POI2007]大都市meg 【树剖】
1103: [POI2007]大都市meg Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3038 Solved: 1593 [Submit][S ...
- 关于Maven项目install时出现No compiler is provided in this environment的处理
关于Maven项目build时出现No compiler is provided in this environment的处理 新配置的Eclipse环境,运行现有项目没问题,一日,从svn上检出了一 ...
- AWS CLI command example
1.list ec2 instance-id, instance status, type, ip address, name aws ec2 describe-instances --query ' ...
- ES6学习笔记(一)——Promise
Promise 是 ES6 提供的一种异步编程的解决方案: 将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数(解决异步函数回调地狱的问题).Promise 对象保存着异步操作的结果. 首先 ...
- hibernate连接oracle数据库
前言:以下所有的操作都是基于你已经成功安装了oracle数据库并且java的开发环境正常的情况下进行的. 如果没有完善请先配置基础环境. 第一步:配置需要的环境(下载并导入需要的包). 下载链接:ht ...
- usaco 2000 contest 滑雪
2013-09-11 10:22 [题目大意]给定N个点的高度和M条相连的路线(单向),从最高点向下走, 到无法走时为一条路径,求不同的路径数,(一节点不同就叫不同) [输入样例] 4 5 (N, ...
- windows支持applocker的版本
Operating system requirements The following table show the on which operating systems AppLocker fe ...