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 相关文章推荐
利用soaplib搭建webservice详细步骤和实例代码
Nov 20 Python
使用python删除nginx缓存文件示例(python文件操作)
Mar 26 Python
python中的reduce内建函数使用方法指南
Aug 31 Python
Python中动态获取对象的属性和方法的教程
Apr 09 Python
Python PyQt5实现的简易计算器功能示例
Aug 23 Python
面向初学者的Python编辑器Mu
Oct 08 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 Python
全网最详细的PyCharm+Anaconda的安装过程图解
Jan 25 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
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
比较详细的javascript对象的property和prototype是什么一种关系
2007/08/06 Javascript
js中cookie的使用详细分析
2008/05/28 Javascript
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
详解小程序输入框闪烁及重影BUG解决方案
2018/08/31 Javascript
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
Python中的tuple元组详细介绍
2015/02/02 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
python将文本分每两行一组并保存到文件
2018/03/19 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python绘制封闭多边形教程
2020/02/18 Python
python二维图制作的实例代码
2020/12/03 Python
python os.listdir()乱码解决方案
2021/01/31 Python
CSS3 3D立方体效果示例-transform也不过如此
2016/12/05 HTML / CSS
介绍一下XMLHttpRequest对象
2012/02/12 面试题
机电一体化大学生求职信
2013/11/08 职场文书
初一生物教学反思
2014/01/18 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
单位工作证明范文
2014/09/14 职场文书
四风问题党员个人整改措施
2014/10/27 职场文书
2015年银行大堂经理工作总结
2015/04/24 职场文书
十月围城观后感
2015/06/08 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
python函数的两种嵌套方法使用
2022/04/02 Python
Nginx速查手册及常见问题
2022/04/07 Servers