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
分享到:
相关推荐
Cuckoo 过滤器是近似集合成员查询的布隆过滤器替代品。虽然 Bloom 过滤器是众所周知的节省空间的数据结构,可以服务于“如果项目 x 在一个集合中?”之类的查询,但它们不支持删除。它们启用删除的差异(如计算 ...
代码组织上,Python通常遵循模块化原则,每个功能可能对应一个单独的Python文件,如`file_operations.py`负责文件操作,`ui.py`处理用户界面,`utils.py`包含通用辅助函数。这些模块通过导入彼此的功能进行协作。 ...
Python垃圾邮件过滤器是利用机器学习中的贝叶斯分类器实现的一种高效文本分类技术,尤其适用于电子邮件的自动筛选。在给定的项目中,"Filter.py"可能是实现这个功能的核心代码文件,而"G2"和"A"可能是数据集或者辅助...
"nixy过滤器"是一个Python实现的实用程序,它能够为标准输入数据添加颜色,使得输出更易于阅读和理解,尤其在处理大量文本数据或者日志文件时,这种功能非常有用。这个工具通过分析行或由空格分隔的列来决定哪些部分...
pyinotify和watchdog是两个强大的库,它们能够在Python环境中实现文件系统监听功能。 pyinotify是基于Linux内核的inotify机制开发的,它允许应用程序能够监控文件系统的变化,并且可以很快地响应这些变化。...
在“python文件备份源码.rar”这个压缩包中,我们可以推测它包含的是使用Python编写的文件备份程序的源代码。这样的程序通常用于创建、管理和维护文件或目录的副本,以防原始数据丢失或损坏。 在Python中实现文件...
"txt文本文件过滤器"是一种专门针对TXT文本文件进行处理的工具,其主要功能是对大量TXT文本进行筛选和处理,以便提取有用信息或去除无用数据。在IT领域,这样的工具常常被用来进行数据清洗、分析,或者进行特定...
在IT领域,尤其是在科学计算和可视化中,VTK(Visualization Toolkit)是一个强大的开源库,用于处理、操作和显示三维...通过深入了解VTK库的功能,如数据过滤、着色、光照控制等,可以进一步增强STL文件的可视化能力。
它可以包含变量、控制结构(如循环和条件语句)以及自定义过滤器和宏。 10. **安全性(Security)**:在处理文件上传和下载时,应考虑各种安全问题,如防止文件注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等...
本主题主要关注如何使用Python处理LAS文件,特别是读取和保存XYZI点云数据。 首先,Python中的`liblas`库是处理LAS文件的核心工具。`liblas`是一个开源库,提供了读取和写入LAS文件的功能,支持多种版本的LAS规范。...
《Windows文件系统过滤驱动开发教程 2nd》是由楚狂人编著,旨在深入解析Windows操作系统中的文件系统过滤驱动开发技术。本教程基于作者丰富的实践经验,详细阐述了如何设计和实现这样的驱动程序,以增强或修改文件...
过滤器是 FFmpeg 的核心特性,Python-ffmpeg 允许开发者通过 `filter()` 函数应用它们。例如,`filter('scale', w=640, h=480)` 可以将视频缩放到指定尺寸。 5. **复杂的过滤器链**: 可以创建过滤器链,将多个...
Java的`java.io.File`类有`listFiles()`方法,配合文件过滤器(如`FilenameFilter`)可实现过滤。在JavaScript中,Node.js的`fs.readdir()`配合回调函数或Promise可以实现类似功能。 4. **正则表达式过滤**: 对于...
可以使用Python的文本处理工具,如`re`(正则表达式)和`nltk`(自然语言工具包)来解析和分析这个文本文件,进一步支持英文单词的过滤和处理工作。 总的来说,这些资源为Python编程中的英文单词过滤提供了数据基础...
当用户从文件管理器或其他支持拖放的程序中拖动文件到这个控件上时,文件路径就会自动显示在QLineEdit中。 将这个功能整合到你的项目中,只需要将`DragDropLineEdit`替换掉原来的QLineEdit实例。例如,如果你有一个...
在Python编程中,自定义过滤器是Django模板语言(DTL)中增强模板功能的一种方式,它允许开发者创建自己的函数来处理数据,以便在模板渲染时应用特定的逻辑。本篇文章将深入探讨如何在Python中实现一个计算时间差的...
可以使用Python的包管理器pip进行安装: ``` pip install csvs-to-sqlite ``` 一旦安装完成,你可以使用以下命令将CSV文件转换为SQLite数据库: ```bash csvs-to-sqlite /path/to/output.db /path/to/csv/files/*....
本话题将深入探讨如何利用Python处理HTML内容,特别是涉及内容提取和过滤器的使用。 Python是一种高级编程语言,以其简洁的语法和强大的库支持而闻名。在处理HTML内容时,Python提供了多个库,如BeautifulSoup和...
本项目聚焦于构建一个文件夹管理系统,它允许用户浏览、管理本地文件和文件夹,提供了类似Windows资源管理器的功能。这个系统基于Python的Tkinter库,它是Python的标准GUI库,易于学习且功能强大。 1. Tkinter库...