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关闭windows进程的方法
Apr 18 Python
python开发中range()函数用法实例分析
Nov 12 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
Jan 09 Python
解决Python中回文数和质数的问题
Nov 24 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
Python测试线程应用程序过程解析
Dec 31 Python
python3.7通过thrift操作hbase的示例代码
Jan 14 Python
Python抓包程序mitmproxy安装和使用过程图解
Mar 02 Python
用python写爬虫简单吗
Jul 28 Python
Python基础之数据结构详解
Apr 28 Python
浅析Python实现DFA算法
Jun 26 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 adodb连接mssql解决乱码问题
2009/06/12 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript函数库-集合框架
2007/04/27 Javascript
javascript 触发HTML元素绑定的函数
2010/09/11 Javascript
js的压缩及jquery压缩探讨(提高页面加载性能/保护劳动成果)
2013/01/29 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
使用BootStrap建立响应式网页——通栏轮播图(carousel)
2016/12/21 Javascript
a标签置灰不可点击的实现方法
2017/02/06 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
带你使用webpack快速构建web项目的方法
2020/11/12 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
python实现数据图表
2017/07/29 Python
Python iter()函数用法实例分析
2018/03/17 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
python几种常用功能实现代码实例
2019/12/25 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
中专毕业生自我鉴定范文
2013/11/09 职场文书
支部鉴定材料
2014/06/02 职场文书
钳工实训报告总结
2014/11/04 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
2015年电工工作总结
2015/04/10 职场文书
创卫工作总结2015
2015/04/22 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
python数据可视化JupyterLab实用扩展程序Mito
2021/11/20 Python