>  기사  >  백엔드 개발  >  문자열 필터링을 위한 Python 팁

문자열 필터링을 위한 Python 팁

巴扎黑
巴扎黑원래의
2017-05-21 18:52:212889검색

Python의 지도 기능은 문자 변환 및 문자 순회 섹션 모두에서 매우 유용합니다. 이제 다시 어떤 놀라움을 가져다 줄까요? 지도가 훌륭하고 앞으로 더 많이 가지고 놀아야 한다고 말하려는 겁니까?

구체적인 예
하위 디렉터리(하하)를 포함하여 디렉터리를 탐색하고 접미사 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] 로스트 시즌 4 04.rmvb
[로스트 시즌 4].Lost.S04E00.rmvb
[로스트 시즌 4][에피소드 02 ][중국어 자막]. rmvb
"로스트 시즌 4" 05화 [중국어 자막].rmvb
"로스트 시즌 4" 06화 [중국어 자막].rmvb
"로스트" 로스트 시즌 4 07화 [중국어 자막].rmvb
갓센드 시즌 2 01.rmvb
갓센드 시즌 2 02.rmvb
갓센드 시즌 2 03.rmvb
갓센드 시즌 2 시즌 04.rmvb
갓센드 시즌 2 05.rmvb
영화 and Television Empire (bbs.cnxp.com).Beautiful Mind.A.Beautiful.Mind.2001.CD1.rmvb
(...너무 많아요 아, 다 출력하지 마세요~~)


확장
CookBook 책에서는 문자열 필터링을 구현하기 위해 itertools.imap이 제공됩니다. imap과 map의 차이점은 imap은 반복 객체를 반환하고 map은 목록 객체를 반환한다는 것입니다. 코드는 다음과 같습니다:

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 팁의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.