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学习笔记_数据排序方法
May 22 Python
Python重新引入被覆盖的自带function
Jul 16 Python
探究python中open函数的使用
Mar 01 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
78行Python代码实现现微信撤回消息功能
Jul 26 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
python 字典操作提取key,value的方法
Jun 26 Python
Python实现最大子序和的方法示例
Jul 05 Python
解决Python pip 自动更新升级失败的问题
Feb 21 Python
将pycharm配置为matlab或者spyder的用法说明
Jun 08 Python
Python如何将模块打包并发布
Aug 30 Python
pytorch实现加载保存查看checkpoint文件
Jul 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
如何利用php+mysql保存和输出文件
2006/10/09 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
javascript入门基础之私有变量
2010/02/23 Javascript
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
2020/02/01 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python下实现的RSA加密/解密及签名/验证功能示例
2017/07/17 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
基于python 取余问题(%)详解
2020/06/03 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
linux面试题参考答案(11)
2016/11/26 面试题
中专生自我鉴定
2013/12/17 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
毕业生求职信的经典写法
2014/01/31 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
2015员工年度考核评语
2015/03/25 职场文书
特此通知格式
2015/04/27 职场文书
党支部考察意见范文
2015/06/02 职场文书
2015年除四害工作总结
2015/07/23 职场文书
行为习惯主题班会
2015/08/14 职场文书
Python OpenCV实现图形检测示例详解
2022/04/08 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android