Python 過濾字符串的技巧,map與itertools.imap
更新時間:2008年09月06日 14:13:23 作者:
Python中的map函數(shù)非常有用,在字符轉(zhuǎn)換和字符遍歷兩節(jié)都出現(xiàn)過,現(xiàn)在,它又出現(xiàn)了,會給我們帶來什么樣的驚喜呢?是不是要告訴我們,map是非常棒的,以后要多找它玩呢?
具體的實例
我們需要在目錄中遍歷,包括子目錄(哈哈),找出所有后綴為: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)
輸出結(jié)果
來看看有什么好東東:
[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來實現(xiàn)對字符串的過濾。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)
我們需要在目錄中遍歷,包括子目錄(哈哈),找出所有后綴為:rmvb ,avi ,pmp 的文件。(天哪?!你要干什么?這可是我的隱私啊~~)
復(fù)制代碼 代碼如下:
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)
輸出結(jié)果
來看看有什么好東東:
[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來實現(xiàn)對字符串的過濾。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)
相關(guān)文章
python使用Tkinter實現(xiàn)在線音樂播放器
這篇文章主要為大家詳細介紹了python使用Tkinter實現(xiàn)在線音樂播放器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Python?Paramiko上傳下載sftp文件及遠程執(zhí)行命令詳解
這篇文章主要為大家介紹了Python?Paramiko上傳下載sftp文件及遠程執(zhí)行命令示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07python實現(xiàn)字符串完美拆分split()的方法
今天小編就為大家分享一篇python實現(xiàn)字符串完美拆分split()的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-07-07Python3實現(xiàn)的簡單工資管理系統(tǒng)示例
這篇文章主要介紹了Python3實現(xiàn)的簡單工資管理系統(tǒng),涉及Python文件讀寫、數(shù)據(jù)遍歷、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-03-03淺談Python中threading join和setDaemon用法及區(qū)別說明
這篇文章主要介紹了淺談Python中threading join和setDaemon用法及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python+OpenCV實戰(zhàn)之利用?K-Means?聚類進行色彩量化
這篇文章主要介紹了如何利用?K-Means?聚類進行色彩量化,以減少圖像中顏色數(shù)量。文中的代碼具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以關(guān)注一下2021-12-12Python開發(fā)虛擬環(huán)境使用virtualenvwrapper的搭建步驟教程圖解
virtualenvwrapper是用來管理virtualenv的擴展包,用著很方便。這篇文章主要介紹了Python開發(fā)虛擬環(huán)境使用virtualenvwrapper的搭建步驟 ,需要的朋友可以參考下2018-09-09