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 list中append()与extend()用法分享
Mar 24 Python
python3图片转换二进制存入mysql
Dec 06 Python
使用python 获取进程pid号的方法
Mar 10 Python
python使用webbrowser浏览指定url的方法
Apr 04 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
浅析Python中的多条件排序实现
Jun 07 Python
Python读取sqlite数据库文件的方法分析
Aug 07 Python
微信跳一跳辅助python代码实现
Jan 05 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
scrapy-redis源码分析之发送POST请求详解
May 15 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python滑块验证码的破解实现
Nov 10 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
php array的学习笔记
2012/05/10 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php版微信数据统计接口用法示例
2016/10/12 PHP
JQuery伸缩导航练习示例
2013/11/13 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
vue中echarts图表大小适应窗口大小且不需要刷新案例
2020/07/19 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
Nest.js散列与加密实例详解
2021/02/24 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
python实现linux下使用xcopy的方法
2015/06/28 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Django ORM 查询管理器源码解析
2019/08/05 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
在django中实现choices字段获取对应字段值
2020/07/12 Python
美国小蜜蜂Burt’s Bees德国官网:天然唇部、皮肤和身体护理产品
2020/06/14 全球购物
安全生产承诺书范文
2014/05/22 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
告知书格式
2015/07/01 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
MySQL创建表操作命令分享
2022/03/25 MySQL