python 递归遍历文件夹,并打印满足条件的文件路径实例


Posted in Python onAugust 30, 2017

题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径。

#!/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 递归遍历文件夹,并打印满足条件的文件路径实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
简化Python的Django框架代码的一些示例
Apr 20 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
如何理解python中数字列表
May 29 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
Python中Yield的基本用法
Oct 18 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
python实现xml转json文件的示例代码
Dec 30 Python
Python 实现RSA加解密文本文件
Dec 30 Python
Python+SeaTable实现计算两个日期间的工作日天数
Jul 07 Python
python递归打印某个目录的内容(实例讲解)
Aug 30 #Python
python-opencv在有噪音的情况下提取图像的轮廓实例
Aug 30 #Python
关于python的list相关知识(推荐)
Aug 30 #Python
Python编程实现正则删除命令功能
Aug 30 #Python
Python删除Java源文件中全部注释的实现方法
Aug 30 #Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 #Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 #Python
You might like
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
PHP实现163邮箱自动发送邮件
2016/03/29 PHP
Smarty高级应用之缓存操作技巧分析
2016/05/14 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
jquery插件pagination实现无刷新ajax分页
2015/09/30 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
python模拟Django框架实例
2016/05/17 Python
python使用电子邮件模块smtplib的方法
2016/08/28 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
Python关于反射的实例代码分享
2020/02/20 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
2020/03/30 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
10款最佳Python开发工具推荐,每一款都是神器
2020/10/15 Python
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
2019年c语言经典面试题目
2016/08/17 面试题
求职简历中自我评价
2014/01/28 职场文书
租赁协议书范本
2014/04/22 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
部队2014年终工作总结
2014/11/27 职场文书
社区重阳节活动总结
2015/03/24 职场文书
2015年教研组工作总结
2015/05/04 职场文书
Pytest中conftest.py的用法
2021/06/27 Python
详解MindSpore自定义模型损失函数
2021/06/30 Python