面向过程的编程思想

1、面向过程的编程思想及举例

写程序时:

要先想功能,分步实现

2、 os模块中walk输出目录中文件路径

os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

Send可以传多个值,但是必须是元组类型

面向过程的编程思想

像流水线,代码简洁,体系结构

实现对一个目录下面(包含子目录下面)有一行包含过滤字符串就输出其文件名的绝对路径
C:\python_fullstack_wen\day24\wen
""" import time,os
#定义
def init(func):
"装饰器"
def wrapper(*args,**kwargs):
res=func(*args,**kwargs)
next(res)
return res
return wrapper @init
def search(target):
"找到目录下所有文件名的绝对路径"
while True:
dir_path=yield
g=os.walk(dir_path)
for i in g:
for j in i[-1]:
file_path="%s\\%s"%(i[0],j)
target.send(file_path)
@init
def opener(target):
"打开文件,返回文件句柄"
while True:
file_path=yield
with open(file_path) as f:
target.send((file_path,f))
@init
def cat(target):
"查看文件,返回每行内容"
while True:
file_path,f=yield
for line in f:
target.send((file_path,line))
@init
def grep(pattern,target):
"过滤这行,如果符合返回文件路径"
while True:
file_path,line=yield
if pattern in line:
target.send(file_path)
@init
def printer():
"打印"
while True:
file_path=yield
print(file_path) #调用
g=search(opener(cat(grep("wenyanjie",printer()))))
g.send("C:\python_fullstack_wen\day24\wen")

简单方法实现上面程序 

import os

def search(dir_name, partten):
g = os.walk(dir_name)
for i in g:
for j in i[-1]:
file_path = i[0] + "\\" +j
with open(file_path) as f:
for line in f:
if partten in line:
print(file_path) search("c:\\test", "python")

python基础——面向过程的编程思想及举例的更多相关文章

  1. JS高级---体会面向对象和面向过程的编程思想

    体会面向对象和面向过程的编程思想 ChangeStyle是自定义的构造函数,再通过原型添加方法的函数. 实例化对象,导入json参数,和创建cs,调用原型添加的方法函数 过渡,先熟悉记忆 <!D ...

  2. python基础-面向过程编程

    面向过程编程 面向过程编程其实是一种机械式的思维方式,其核心就是"过程". 过程指的是一种解决问题的步骤,即先干什么再干什么,最后干什么. 优点:将复杂的问题流程化,进而简单化. ...

  3. JAVA面向接口的编程思想与具体实现

    面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的.        问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了 ...

  4. 【C++系列小结】面向过程的编程风格

    前言 编程语言有面向过程和面向对象之分,因此编程风格也有所谓的面向过程的编程和面向对象的编程,并且语言的性质不会限制编程的风格. 这里主要说一以下向过程的编程. "面向过程"(Pr ...

  5. python之面向过程,函数式编程,面向对象浅析

    python编程有面向过程.面向函数.面向对象三种,那么他们区别在哪呢?这个问题,让我想起我在学习编程的时候,我的老师给我举的例子.分享给大家. 面向过程就是将编程当成是做一件事,要按步骤完成! 比如 ...

  6. python 3 面向过程编程

    python 3 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就像设计好一条工业流水线,是一种机械式的思维方式. 1.优点:程序结构清晰,可以把复杂的问题简单化,流程 ...

  7. Python之面向过程和面向对象的区别

    一.面向过程 1.面向过程:核心是过程二字,过程指的是解决问题的步骤,好比如设计一条流水线,是一种机械式的思维方式. 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 .基本设计思路就是 ...

  8. C#基础--面向过程计算器

    //面向过程计算器 //思路: 需要注意的是: 两个数相除 除数不能为0: //1.提示用户输入 //2.进行运算 //3.得到结果 Console.WriteLine("请输入第一个数字: ...

  9. 四、java基础-面向过程_对象_类中可出现的因素

    1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...

随机推荐

  1. 从Socket入门到BIO,NIO,multiplexing,AIO

    Socket入门 最简单的Server端读取Client端内容的demo public class Server { public static void main(String [] args) t ...

  2. 笔记:I/O流-ZIP文档

    ZIP文档以压缩格式存储了一个或多个文件,每个ZIP文档都有一个头,包含诸如每个文件名字和所使用的压缩方法等信息,在 Java 中可以使用 ZipInputStream 来读入ZIP 文档,getNe ...

  3. Kafka OffsetMonitor:监控消费者和延迟的队列

    一个小应用程序来监视kafka消费者的进度和它们的延迟的队列. KafkaOffsetMonitor是用来实时监控Kafka集群中的consumer以及在队列中的位置(偏移量). 你可以查看当前的消费 ...

  4. 【Django】Web应用开发经由

    [Django开发经由] 本来以为看完网上的入门教程之后就可以看书详细学习一下,没想到手头上的这本书也讲得不是太详细..无奈,不过好在这本书从无到有建立一个网站的流程还算可以,就以这个角度简单记录一下 ...

  5. ansible之一:安装与配置

    ansible特点: 1.不需要安装客户端,通过sshd去通信 2.基于模块工作,模块可以由任何语言开发 3.不仅支持命令行试用模块,也支持yaml格式得playbook 4.支持sudo 5.有提供 ...

  6. PHP对大小写敏感问题

    1. 变量名区分大小写 1 <?php 2 $abc = 'abcd'; 3 echo $abc; //输出 'abcd' 4 echo $aBc; //无输出 5 echo $ABC; //无 ...

  7. 开源小工具 酷狗、网易音乐缓存文件转mp3工具

    发布一个开源小工具,支持将酷狗和网易云音乐的缓存文件转码为MP3文件. 以前写过kgtemp文件转mp3工具,正好当前又有网易云音乐缓存文件需求,因此就在原来小工具的基础上做了一点修改,增加了对网易云 ...

  8. 使用 memoryview 和 struct 查看一个 GIF 图像的首部

    >>> import struct >>> fmt = '<3s3sHH' # ➊ >>> with open('filter.gif', ...

  9. 浅谈CPU三级缓存和缓存命中率

    CPU: CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多.缓存的出现主要是 为了解决CPU运算速度与内存读写速度不匹配的矛盾 ...

  10. 201621123043 《Java程序设计》第1周学习总结

    1. 本章学习总结 Jdk的安装: eclipse的基本使用方法 Java发展史 jdk.jre.jvm 关键词之间的联系:是整个java的核心,包括了一堆java.java基础的类库.java运行环 ...