Python 过滤字符串的技巧,map与itertools.imap


Posted in Python onSeptember 06, 2008

具体的实例
我们需要在目录中遍历,包括子目录(哈哈),找出所有后缀为:rmvb ,avi ,pmp 的文件。(天哪?!你要干什么?这可是我的隐私啊~~)

import os def anyTrue(predicate, sequence): 
return True in map(predicate, sequence) 
def filterFiles(folder, exts): 
for fileName in os.listdir(folder): 
if os.path.isdir(folder + '/' + fileName): 
filterFiles(folder + '/' + fileName, exts) 
elif anyTrue(fileName.endswith, exts): 
print fileName 
exts = ['.rmvb', '.avi', '.pmp'] 
filterFiles('/media/Personal/Movie', exts)

输出结果
来看看有什么好东东:
[66影视www.66ys.cn]迷失第四季04.rmvb
[迷失.第4季].Lost.S04E00.rmvb
[迷失Lost第四季][第02集][中文字幕].rmvb
《迷失Lost第四季》第05集[中文字幕].rmvb
《迷失Lost第四季》第06集[中文字幕].rmvb
《迷失Lost第四季》第07集[中文字幕].rmvb
天赐第2季01.rmvb
天赐第2季02.rmvb
天赐第2季03.rmvb
天赐第2季04.rmvb
天赐第2季05.rmvb
影视帝国(bbs.cnxp.com).美丽心灵.A.Beautiful.Mind.2001.CD1.rmvb
( ... 太多了,不要全输出来吧~~)

扩展
CookBook一书中,提供的是itertools.imap来实现对字符串的过滤。imap和map不同的是,imap返回的是一个iteration对象,而map返回的是一个list对象。代码如下:
import itertools
def anyTrue(predicate, sequence):
return True in itertools.imap(predicate, sequence)
def endsWith(s, *endings):
return anyTrue(s.endswith, endings)
imap 等价于:
def imap(function, *iterables):
iterables = map(iter, iterables)
while True:
args = [i.next() for i in iterables]
if function is None:
yield tuple(args)
else:
yield function(*args)

Python 相关文章推荐
python通过yield实现数组全排列的方法
Mar 18 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
使用 Supervisor 监控 Python3 进程方式
Dec 05 Python
TensorFlow tf.nn.max_pool实现池化操作方式
Jan 04 Python
TensorFlow:将ckpt文件固化成pb文件教程
Feb 11 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
Feb 20 Python
python 伯努利分布详解
Feb 25 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
keras实现VGG16 CIFAR10数据集方式
Jul 07 Python
Pandas搭配lambda组合使用详解
Jan 22 Python
比较详细Python正则表达式操作指南(re使用)
Sep 06 #Python
Python splitlines使用技巧
Sep 06 #Python
Python struct.unpack
Sep 06 #Python
Python 条件判断的缩写方法
Sep 06 #Python
Python 可爱的大小写
Sep 06 #Python
Python 除法小技巧
Sep 06 #Python
Python translator使用实例
Sep 06 #Python
You might like
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
PHP 时间日期操作实战
2011/08/26 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
jQuery-onload让第一次页面加载时图片是淡入方式显示
2012/05/23 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
2016/08/29 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
uni-app微信小程序登录授权的实现
2020/05/22 Javascript
[46:53]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
详解Python的单元测试
2015/04/28 Python
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
详解python单元测试框架unittest
2018/07/02 Python
Python 字符串转换为整形和浮点类型的方法
2018/07/17 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
只要五步 就可以用HTML5/CSS3快速制作便签贴特效(图)
2012/06/04 HTML / CSS
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
经典促销广告词大全
2014/03/19 职场文书
销售主管竞聘书
2014/03/31 职场文书
迎新晚会策划方案
2014/06/13 职场文书
2014入党积极分子破除“四风”思想汇报
2014/09/14 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
小学生优秀评语
2014/12/29 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
七年级作文之环保作文
2019/10/17 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers