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每次处理固定个数的字符的方法总结
Jan 29 Python
python实现批量修改文件名代码
Sep 10 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
Python 爬取携程所有机票的实例代码
Jun 11 Python
Python3基础教程之递归函数简单示例
Jun 07 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
Mar 09 Python
django从后台返回html代码的实例
Mar 11 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
基于python+selenium自动健康打卡的实现代码
Jan 13 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
如何正确理解python装饰器
Jun 15 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
Ha0k 0.3 PHP 网页木马修改版
2009/10/11 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
Jquery 常用方法经典总结
2010/01/28 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
分享33个jQuery与CSS3实现的绚丽鼠标悬停效果
2014/12/15 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
p5.js入门教程之平滑过渡(Easing)
2018/03/16 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
2019/04/24 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python 动态加载的实现方法
2017/12/22 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python 依赖库太多了该如何管理
2019/11/08 Python
Tensorflow轻松实现XOR运算的方式
2020/02/03 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
2020/02/20 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
HTML5通用接口详解
2016/06/12 HTML / CSS
最新个人职业生涯规划书
2014/01/22 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
银行业务授权委托书
2014/10/10 职场文书
公司离职证明范本
2014/10/17 职场文书
2019通用版导游词范本!
2019/08/07 职场文书
2019年教师节祝福语精选,给老师送上真诚的祝福
2019/09/09 职场文书
Python Matplotlib绘制动画的代码详解
2022/05/30 Python