博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 3 面向过程编程
阅读量:6251 次
发布时间:2019-06-22

本文共 1360 字,大约阅读时间需要 4 分钟。

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@initdef 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) #第二阶段:打开文件@initdef opener(target):    while True:        abspath=yield        with 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=False    while True:        abspath,line=yield tag        tag=False        if pattern in line:            target.send(abspath)            tag=True #第五阶段:打印该行属于的文件名@initdef printer():    while True:        abspath=yield        print(abspath) g = search(opener(cat(grep('error'.encode('utf-8'), printer()))))g.send(r'E:\project\PY18\lianxi\111222')
View Code

 

转载于:https://www.cnblogs.com/qiangyuge/p/7277272.html

你可能感兴趣的文章
Babel插件开发入门指南
查看>>
浅谈iOS 自动调节文本高度
查看>>
oracle易忘函数用法(2)
查看>>
总结系列_14(OpenCV2.4.3的新特征以及安装方法)
查看>>
虚拟地址空间分配
查看>>
HDU 4465 - Candy(概率与数学优化)
查看>>
提高你的Java代码质量吧:使用构造函数协助描述枚举项
查看>>
Struts2 学习笔记20 类型转换part2 写自己的转换器
查看>>
网站接入支付宝
查看>>
mybatis+spring配置
查看>>
新浪微博客户端(31)-显示相册图片上的GIF标记
查看>>
idea 项目打包发布
查看>>
x:Name 与 Name 有时候是不一样的。
查看>>
【ASP.NET】如何在asp后台实现弹出对话框
查看>>
XSS (Cross Site Scripting) Prevention Cheat Sheet(XSS防护检查单)
查看>>
Windows下将程序打包为安装包(最为简易的方式)
查看>>
这个月干啥去了?——H5+移动应用实战开发
查看>>
GMT时间转换为当地时间的方法
查看>>
分布式拒绝服务攻击 DDoS
查看>>
Netstat命令详解
查看>>