python 폴 더 를 재 귀적 으로 옮 겨 다 니 며 조건 에 맞 는 파일 경로 인 스 턴 스 를 인쇄 합 니 다.
#!/user/bin/env python
# -*- coding:utf-8 -*-
#grep -rl "python" D:\devtools\workspace\python\aaa
import os
def init(func):
def wrapper(*args,**kwargs):
res=func(*args,**kwargs)
res.send(None)
return res
return wrapper
@init
def search(target):
' '
while True:
dir_name=yield
g=os.walk(dir_name)
for i in g:
for j in i[-1]:
file_path="%s\\%s"%(i[0],j)
target.send(file_path)
@init
def get_file_handle(target):
' '
while True:
file_path=yield
with open(file_path) as f:
target.send((file_path,f))
@init
def cat_file(target):
' '
while True:
file_path,f=yield
for line in f:
target.send((file_path,line))
@init
def printer(pattern):
' '
s=set()
while True:
file_path,line=yield
if pattern in line:
if file_path not in s:
print(file_path)
s.add(file_path)
g=search(get_file_handle(cat_file(printer("python"))))
g.send("D:\\devtools\\workspace\\python\\aaa")
장식 기 를 사용 한 후,매번 실행 할 필요 가 없습니다.send(None),형 삼 target 은 생 성기 입 니 다.전체 프로 그래 밍 은 과정 을 향 한 사고방식 을 채택 했다.
과정 을 향 해 전체 절 차 를 설계 해 야 한다.
그 장점 은 a.체계 구조 가 더욱 뚜렷 하 다 는 것 이다.b.절차 의 복잡 도 를 간소화 했다.
단점:확장 성 이 없 음(내부 결합 도가 너무 높 음)
구체 적 인 응용 장면:장기 적 으로 어떻게 변화 할 필요 가 없 는 소프트웨어 들.시스템
이 python 은 폴 더 를 재 귀적 으로 옮 겨 다 니 며 조건 에 맞 는 파일 경 로 를 인쇄 하 는 인 스 턴 스 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 할 수 있 고 많은 지원 을 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.