python输出文件路径并保存_python 递归遍历文件夹,并打印满足条件的文件路径实例...

news/2024/7/24 12:24:25 标签: python输出文件路径并保存

题目:利用协程来遍历目录下,所有子文件及子文件夹下的文件是否含有某个字段值,并打印满足条件的文件的绝对路径。

#!/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 递归遍历文件夹,并打印满足条件的文件路径实例

本文地址: http://www.cppcns.com/jiaoben/python/202010.html


http://www.niftyadmin.cn/n/1354741.html

相关文章

高德地图/百度地图 api 根据select 选择地点 进行位置的显示;

需求:根据select 选择器选择城市地名切换地图位置变化 预期效果: 高德地图API: 思路:根据高德地图api(概述-地图 JS API | 高德地图API)官方实例进行修改 需要获取城市地点的adcode值和城市地点的名称通…

linux 磁盘检测卡主_Linux 磁盘管理(3)

Linux 磁盘管理(3)五、磁盘检验fsck(file system check)用来检查和维护不一致的文件系统。若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。语法:fsck [-t 文件系统] [-ACay] 装置名称选项与参…

pubsubjs介绍以及基本使用方法介绍

什么是PubSubJS? PubSubJS 是一个用 JavaScript 编写的基于主题的 发布/订阅库。 PubSubJS 有同步解耦,所以主题是异步发布的。这有助于使您的程序保持可预测性,因为在消费者处理主题时,主题的发起者不会被阻止。 主要特点&…

天融信网闸web界面登录方式_一个简易的Web注册登录界面

访问:http://songothao.gitee.io/web_sign_in下载:叁贰壹/WEB注册登录界面预览:运用 HTMLCSSJS(JQuery)JS代码如下:$这里主要是使用了DOM,关于一些前端输入过滤的安全机制没有做。CSDN&#xff…

修改video标签默认样式问题video播放器样式优化;video播放器默认显示图片

需求&#xff1a; 1.播放器可以支持上传默认封面图片 2.播放器的进度条长度拉长些,与播放器长度一样长&#xff0c;或者其他方式美化一下 首先需求1.播放器可以支持上传默认封面图片解决方案&#xff1a; 1.第一种方法可以直接在video标签中直接添加poster属性 <!DOCTYPE …

非主流图片制作工具_无需PS!教你使用Excel制作电子证件照,小白3分钟都能学会...

相信很多朋友都被电子证件照片烦恼过&#xff0c;特别是入职和办事的时候。但自己又不会PS&#xff0c;去照相馆又非常麻烦&#xff01;遇到这种情况该怎么办呢&#xff1f;其实使用Excel就能制作出来&#xff0c;非常简单方便&#xff0c;小白3分钟都能学会哦&#xff01;一、…

SASS使用方法环境配置 Ruby安装以及sass常用mixins举例 静态页使用方法

Sass介绍&#xff1a; Sass 是一个 CSS 预处理器。是 CSS 扩展语言&#xff0c;可以帮助我们减少 CSS 重复的代码&#xff0c;节省开发时间并且完全兼容所有版本的 CSS。 Sass 扩展了 CSS3&#xff0c;增加了规则、变量、混入、选择器、继承、内置函数等等特性。生成良好格式化…

.net runtime占用cpu_GO语言:runtime包

官网文档对runtime包的介绍&#xff1a;Package runtime contains operations that interact with Gos runtime system, such as functions to control goroutines. It also includes the low-level type information used by the reflect package; see reflects documentation…