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开发微信支付的注意事项
Aug 19 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
Jul 25 Python
利用Opencv中Houghline方法实现直线检测
Feb 11 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
Python人脸识别第三方库face_recognition接口说明文档
May 03 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
python已协程方式处理任务实现过程
Dec 27 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python爬取2021猫眼票房字体加密实例
Feb 19 Python
Python实现信息管理系统
Jun 05 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
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
php版淘宝网查询商品接口代码示例
2014/06/17 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
node.js 使用ejs模板引擎时后缀换成.html
2015/04/22 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
JS组件Bootstrap导航条使用方法详解
2016/04/29 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
浅析vue 函数配置项watch及函数 $watch 源码分享
2018/11/22 Javascript
微信小程序日历弹窗选择器代码实例
2019/05/09 Javascript
使vue实现jQuery调用的两种方法
2019/05/12 jQuery
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python字符类型的一些方法小结
2016/05/16 Python
python编码总结(编码类型、格式、转码)
2016/07/01 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
基于python求两个列表的并集.交集.差集
2020/02/10 Python
python eventlet绿化和patch原理
2020/11/21 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
银行实习生的自我评价
2014/01/13 职场文书
教师自我反思材料
2014/02/14 职场文书
《鸟岛》教学反思
2014/04/26 职场文书
文化产业实施方案
2014/06/07 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
一行代码python实现文件共享服务器
2021/04/22 Python