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爬虫入门教程之点点美女图片爬虫代码分享
Sep 02 Python
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
pymongo实现多结果进行多列排序的方法
May 16 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
Python Socket编程详细介绍
Mar 23 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
Python进阶之@property动态属性的实现
Apr 01 Python
wxPython实现绘图小例子
Nov 19 Python
python3实现绘制二维点图
Dec 04 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python龙贝格法求积分实例
Feb 29 Python
浅谈Python xlwings 读取Excel文件的正确姿势
Feb 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入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
php自定义函数实现汉字转换utf8编码的方法
2016/09/29 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
JS关键字变色实现思路及代码
2013/02/21 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
Angular ui.bootstrap.pagination分页
2017/01/20 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
微信小程序 获取javascript 里的数据
2017/08/17 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
js实现中文实时时钟
2020/01/15 Javascript
nuxt 每个页面head标签内容设置方式
2020/11/05 Javascript
利用Python在一个文件的头部插入数据的实例
2018/05/02 Python
pandas 对series和dataframe进行排序的实例
2018/06/09 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
浅谈django的render函数的参数问题
2018/10/16 Python
django session完成状态保持的方法
2018/11/27 Python
python dataframe向下向上填充,fillna和ffill的方法
2018/11/28 Python
python之pyqt5通过按钮改变Label的背景颜色方法
2019/06/13 Python
wxPython实现文本框基础组件
2019/11/18 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
详解pandas赋值失败问题解决
2020/11/29 Python
js实现弹框效果
2021/03/24 Javascript
企业人事任命书
2014/06/05 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
史上最全书信经典范文大全(建议收藏)
2019/07/10 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
以下牛机,你有几个
2022/04/05 无线电