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实现简单字典树的方法
Apr 29 Python
python3.5仿微软计算器程序
Mar 30 Python
python中的随机函数小结
Jan 27 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
Python 私有化操作实例分析
Nov 21 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
keras用auc做metrics以及早停实例
Jul 02 Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 Python
jupyter notebook快速入门及使用详解
Nov 13 Python
用Python selenium实现淘宝抢单机器人
Jun 18 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 16 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巧获服务器端信息
2006/12/06 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
探讨多键值cookie(php中cookie存取数组)的详解
2013/06/06 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
PHPExcel简单读取excel文件示例
2016/05/26 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
tp5实现微信小程序多图片上传到服务器功能
2018/07/16 PHP
从JavaScript 到 JQuery (1)学习小结
2009/02/12 Javascript
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
python生成excel的实例代码
2017/11/08 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
基于python中theano库的线性回归
2018/08/31 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
python tqdm库的使用
2020/11/30 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
kfc实习自我鉴定
2013/12/14 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
革命电影观后感
2015/06/18 职场文书
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript