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函数中return后的语句一定不会执行吗?
Jul 06 Python
基于Python os模块常用命令介绍
Nov 03 Python
python构建深度神经网络(DNN)
Mar 10 Python
python SMTP实现发送带附件电子邮件
May 22 Python
python获取代码运行时间的实例代码
Jun 11 Python
Pycharm更换python解释器的方法
Oct 29 Python
Python高级特性与几种函数的讲解
Mar 08 Python
Python检测数据类型的方法总结
May 20 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
Nov 25 Python
Pygame Event事件模块的详细示例
Nov 17 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 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中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
php项目开发中用到的快速排序算法分析
2016/06/25 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
PHP 中常量的知识整理
2017/04/14 PHP
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
2014/10/10 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
Python求导数的方法
2015/05/09 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
详解Python中 sys.argv[]的用法简明解释
2017/12/20 Python
python实现聚类算法原理
2018/02/12 Python
解决DataFrame排序sort的问题
2018/06/07 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
使用python实现简单五子棋游戏
2019/06/18 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
Python实现Kerberos用户的增删改查操作
2020/12/14 Python
详解python的变量缓存机制
2021/01/24 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Html5自定义字体解决方法
2019/10/09 HTML / CSS
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
校园之星获奖感言
2014/01/29 职场文书
前厅部经理岗位职责范文
2014/02/04 职场文书
写得不错的求职信范文
2014/07/11 职场文书
学术会议开幕词
2016/03/03 职场文书
python本地文件服务器实例教程
2021/05/02 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python