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简单程序读取串口信息的方法
Mar 13 Python
python tkinter界面居中显示的方法
Oct 11 Python
python分数表示方式和写法
Jun 26 Python
python单例模式的多种实现方法
Jul 26 Python
解决pyshp UnicodeDecodeError的问题
Dec 06 Python
Python使用正则实现计算字符串算式
Dec 29 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python xlrd/xlwt 创建excel文件及常用操作
Sep 24 Python
python用700行代码实现http客户端
Jan 14 Python
python中time tzset()函数实例用法
Feb 18 Python
python自动化操作之动态验证码、滑动验证码的降噪和识别
Aug 30 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
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
2020/04/07 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
解析jquery获取父窗口的元素
2013/06/26 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
在Web项目中引入Jquery插件报错的完美解决方案(图解)
2016/09/19 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
webpack4.x CommonJS模块化浅析
2018/11/09 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
2019/06/10 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
jQuery HTML css()方法与css类实例详解
2020/05/20 jQuery
速记Python布尔值
2017/11/09 Python
python 动态加载的实现方法
2017/12/22 Python
django框架使用方法详解
2019/07/18 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
基于python实现MQTT发布订阅过程原理解析
2020/07/27 Python
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
办公室主任岗位职责
2013/11/08 职场文书
写好自荐信的几个要点
2013/12/26 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
2015年纪委工作总结
2015/05/13 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL