zoukankan      html  css  js  c++  java
  • python 3 面向过程编程

    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 g
    
        return wrapper
    
     
    
    #第一阶段:找到所有文件的绝对路径
    
    import os
    
    @init
    
    def search(target):
    
        while True:
    
            filepath=yield
    
            g=os.walk(filepath)
    
            for pardir,_,files in g:
    
                for file in files:
    
                    abspath=r'%s\%s' %(dirpath,file)
    
                    target.send(abspath)
    
     
    
    #第二阶段:打开文件
    
    @init
    
    def opener(target):
    
        while True:
    
            abspath=yield
    
            with open(abspath,'rb') as f:
    
                target.send((abspath,f))
    
     
    
    #第三阶段:循环读出每一行内容
    
    @init
    
    def cat(target):
    
        while True:
    
            abspath,f=yield #(abspath,f)
    
            for line in f:
    
                res=target.send((abspath,line))
    
                if res:break
    
     
    
    #第四阶段:过滤
    
    @init
    
    def grep(pattern,target):
    
        tag=False
    
        while True:
    
            abspath,line=yield tag
    
            tag=False
    
            if pattern in line:
    
                target.send(abspath)
    
                tag=True
    
     
    
    #第五阶段:打印该行属于的文件名
    
    @init
    
    def printer():
    
        while True:
    
            abspath=yield
    
            print(abspath)
    
     
    
    g = search(opener(cat(grep('error'.encode('utf-8'), printer()))))
    
    g.send(r'E:projectPY18lianxi111222')
    View Code
  • 相关阅读:
    MR架构
    概念词汇
    数仓项目06:DWD层
    Informatic学习总结_day03
    oracle_创建和管理表
    oracle_使用子查询创建表
    oracle数据类型
    文本变语音引擎 ekho
    [LNOI2014]LCA
    POJ 2942 Knights of the Round Table
  • 原文地址:https://www.cnblogs.com/qiangyuge/p/7277272.html
Copyright © 2011-2022 走看看