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开发中module模块用法实例分析
Nov 12 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
python制作爬虫爬取京东商品评论教程
Dec 16 Python
python获取代码运行时间的实例代码
Jun 11 Python
python中pip的安装与使用教程
Aug 10 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
Jan 23 Python
python画图把时间作为横坐标的方法
Jul 07 Python
基于python实现雪花算法过程详解
Nov 16 Python
Python FtpLib模块应用操作详解
Dec 12 Python
python语言time库和datetime库基本使用详解
Dec 25 Python
Django使用channels + websocket打造在线聊天室
May 20 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学习笔记 类的声明与对象实例化
2011/06/13 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
简单PHP会话(session)说明介绍
2016/08/21 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
Laravel5.7 Eloquent ORM快速入门详解
2019/04/12 PHP
javascript 函数调用规则
2009/08/26 Javascript
JS编程小常识很有用
2012/11/26 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
2015/06/19 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
python实现用户答题功能
2018/01/17 Python
python字符串Intern机制详解
2019/07/01 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
如何进行Linux分区优化
2013/02/12 面试题
学生实习自我鉴定
2013/10/11 职场文书
餐饮业的创业计划书范文
2013/12/26 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
刘胡兰的英雄事迹材料
2014/02/11 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
兵马俑导游词
2015/02/02 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis