写了一个PyQT界面的版本:https://github.com/LongchuanYu/pyqt_project

PATH = r'E:\MyDocument\新しいフォルダー\'  # 要搜索的目录地址

TARGET_PATH = r'E:\MyDocument\新しいフォルダー\1' # 把搜索结果复制到目的地址

NAME_PATH = r'1.txt' # 要读取的文件(同时搜索多个)

NAME = '333' # 搜索一个

NAMES = [] # 自定义搜索,如果填写了这个字段,则忽略从文件加载

READ_FROM_FILE = 1 #是否开启从文件加载

import os
from shutil import copyfile
class Search():
def __init__(self):
self.names = []
self.func = None
self.once = True
self.founded = False
def __core(self,path,name): files = os.listdir(path)
for file in files:
if os.path.isdir(os.path.join(path,file)):
self.__core( os.path.join( path,file),name)
elif name in file:
self.func(os.path.join(path,file))
self.founded = True
if self.once:return
def searchName(self,path,name,func,once=True):
self.func = func
self.once = once
self.founded = False
self.__core(path,name)
if not self.founded:
print(name + ' 未找到')
def searchNames(self,path,names,func,once=True):
if not len(names):
print("names error.")
return self.names = names
self.func = func
self.once = once
not_found_list = []
for name in names:
self.founded = False
self.__core(path,name)
if not self.founded:
not_found_list.append(name)
if len(not_found_list):
print('以下项目未找到:')
for item in not_found_list:
print(item) def func(path):
name = path.split('\\')
tar = os.path.join(TARGET_PATH,name[-1])
copyfile(path,tar) def main():
s = Search()
# s.searchName(PATH,NAME,func,False)
if not len(NAMES) and READ_FROM_FILE:
with open(NAME_PATH,'r',encoding='utf-8') as f:
for line in f:
NAMES.append(line.strip('\n')) s.searchNames(PATH,NAMES,func,False)
main()

[ python应用 ] python递归搜索文件,支持搜索多个文件,支持自定义处理动作的更多相关文章

  1. Python机器学习笔记 Grid SearchCV(网格搜索)

    在机器学习模型中,需要人工选择的参数称为超参数.比如随机森林中决策树的个数,人工神经网络模型中隐藏层层数和每层的节点个数,正则项中常数大小等等,他们都需要事先指定.超参数选择不恰当,就会出现欠拟合或者 ...

  2. 利用python爬取海量疾病名称百度搜索词条目数的爬虫实现

    实验原因: 目前有一个医疗百科检索项目,该项目中对关键词进行检索后,返回的结果很多,可惜结果的排序很不好,影响用户体验.简单来说,搜索出来的所有符合疾病中,有可能是最不常见的疾病是排在第一个的,而最有 ...

  3. python 全栈开发,Day115(urlencode,批量操作,快速搜索,保留原搜索条件,自定义分页,拆分代码)

    今日内容前戏 静态字段和字段 先来看下面一段代码 class Foo: x = 1 # 类变量.静态字段.静态属性 def __init__(self): y = 6 # 实例变量.字段.对象属性 # ...

  4. Java递归搜索指定文件夹下的匹配文件

    import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Queue; /** ...

  5. python 实现图的深度优先和广度优先搜索

    在介绍 python 实现图的深度优先和广度优先搜索前,我们先来了解下什么是"图". 1 一些定义 顶点 顶点(也称为"节点")是图的基本部分.它可以有一个名称 ...

  6. python实现广度优先搜索和深度优先搜索

    图的概念 图表示的是多点之间的连接关系,由节点和边组成.类型分为有向图,无向图,加权图等,任何问题只要能抽象为图,那么就可以应用相应的图算法. 用字典来表示图 这里我们以有向图举例,有向图的邻居节点是 ...

  7. python递归列出目录及其子目录下所有文件

    python递归列出目录及其子目录下所有文件 一.前言 函数的递归,简单来说,就是函数内部调用自己 先举个小例子,求阶乘 def factorial(n): if n == 0: return 1 e ...

  8. (24)Python实现递归生成或者删除一个文件目录及文件

    def removeDir(dirPath): ''' Created by Wu Yongcong 2017-8-18 :param dirPath: :return: ''' if not os. ...

  9. 【原创】python倒排索引之查找包含某主题或单词的文件

    什么是倒排索引? 倒排索引(英语:Inverted index),也常被称为反向索引.置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射.它是文 ...

  10. win下gvim或者linux下的vim安装vundle都适用的配置文件 - 在当前目录及其子目录下**, 的所有文件* 中, 搜索当前光标所在的单词

    gvim下的普通配置: if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=utf-8,g ...

随机推荐

  1. 银行业评分卡制作——IV、WOE

    参考链接:https://blog.csdn.net/kevin7658/article/details/50780391 1.IV的用途 IV的全称是Information Value,中文意思是信 ...

  2. markDodn使用技巧

    markdown 标题 一级标题书写语法: 井符(#)加上空格加上标题名称 二级标题书写语法: 两个井符(#)加上空格加上标题名称 三级标题书写语法: 三个井符(#)加上空格加上标题名称 字体 字体加 ...

  3. MySQL5.7安装教程(亲测有效)

    跟着狂神学java到了数据库阶段了,首先得安装好数据库啊,这里用的是MySQL 压缩包下载:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5. ...

  4. 一行配置搞定 Spring Boot项目的 log4j2 核弹漏洞!

    相信昨天,很多小伙伴都因为Log4j2的史诗级漏洞忙翻了吧? 看到群里还有小伙伴说公司里还特别建了800+人的群在处理... 好在很快就有了缓解措施和解决方案.同时,log4j2官方也是速度影响发布了 ...

  5. Mysql资料 Binlog

    目录 一.简介 二.开启binlog及相关参数 开启 相关操作 三.查看binlog日志 使用mysqlbinlog自带查看命令法 mysql加载方式查询 四.恢复数据 五.命令参数 一.简介 MyS ...

  6. IT服务生命周期

    一.概述 IT服务生命周期由规划设计(Pianning&Design).部署实施(Implementing).服务运营(Opera,tion).持续改进(Improvemenit)和监督管理( ...

  7. java 多线程: Thread 并发访问-代码块同步synchronized {};String作为被锁的对象

    方法同步的弊端 方法同步的时候,如果一个方法需要线程安全控制的代码速度其实很快,但是还有其他的业务逻辑代码耗时非常长(比如网络请求),这样所有的线程就在这一块就等待着了,这样造成了极大的资源浪费如果并 ...

  8. SpringBoot使用Aspect切面拦截打印请求参数

    引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sp ...

  9. 『与善仁』Appium基础 — 26、常用手机操作的API说明

    目录 1.获取当前手机的时间 2.获取手机屏幕的宽和高 3.获取手机当前网络 4.设置手机网络模式 5.操作手机通知栏 6.综合练习 7.发送键到设备(掌握) 8.手机截图(掌握) 是针对手机一些常用 ...

  10. Go1.18中的泛型编程

    目录 目录 前言 泛型是什么 Go的泛型 泛型函数 泛型类型 类型集合 和接口的差异 总结 前言 经过这几年的千呼万唤,简洁的Go语言终于在1.18版本迎来泛型编程.作为一门已经有了14年历史的强类型 ...