python 3 面向過程編程
核心是過程(流水線式思維),過程即解決問題的步驟,面向過程的設計就像設計好一條工業流水線,是一種機械式的思維方式。
1、優點:程序結構清晰,可以把復雜的問題簡單化,流程化。
2、缺點:可擴展性差,改動一個地方很可能要改多個地方,牽一發而動全身。
3、應用場景:linux內核,git,httpd,shell腳本.
grep -rl 'error' /dir/


def init(func):def wrapper(*args,**kwargs):g=func(*args,**kwargs)next(g)return greturn wrapper#第一階段:找到所有文件的絕對路徑import os@initdef search(target):while True:filepath=yieldg=os.walk(filepath)for pardir,_,files in g:for file in files:abspath=r'%s\%s' %(dirpath,file)target.send(abspath)#第二階段:打開文件 @initdef opener(target):while True:abspath=yieldwith open(abspath,'rb') as f:target.send((abspath,f))#第三階段:循環讀出每一行內容 @initdef cat(target):while True:abspath,f=yield #(abspath,f)for line in f:res=target.send((abspath,line))if res:break#第四階段:過濾 @initdef grep(pattern,target):tag=Falsewhile True:abspath,line=yield tagtag=Falseif pattern in line:target.send(abspath)tag=True#第五階段:打印該行屬于的文件名 @initdef printer():while True:abspath=yieldprint(abspath)g = search(opener(cat(grep('error'.encode('utf-8'), printer()))))g.send(r'E:\project\PY18\lianxi\111222')
?