听说你文件夹非常难找?用Python打造一款文件搜索工具,所有功能自己定义!

python制作搜索工具,深挖电脑里的小九九 嘿嘿,大家下午好啊 ,今天给你们分享,如何用python制作搜索工具,什么正儿八经的东西都能搜出来~咳咳,懂得都懂哈其实我不是因为想搜出啥来,主要是电脑自带的搜索工具搜东西太慢了,所以忍不了,想自己制作出一个来!这个可快多了,什么犄角旮旯的都能找到 ~ 阅读详情

一、前言

大家好,在日常的办公中,我们经常会从一堆不同格式的文件(夹)中搜索特定的文件,可能你是凭着记忆去找或是借助软件,但你有想过如何用Python实现吗?本文将基于几个常见的搜索操作讲解

二、扫描路径内的内容

有些时候我们会希望在当前文件夹的成百上千个文件中快速找到需要的文件,如果这个文件夹又包括很多个子文件夹,并不需要程序进去查找而无端耗费资源。这就是典型的「扫描一层搜索」
 

1. 基于 os.scandir()

需求说明

❝

输出C:\Program Files (x86)路径下名字包含“Windows”的文件夹名称,并统计个数

❞

步骤分析

这是一个非遍历的需求,只需要在目的文件夹内扫描一圈判断即可。用到的方法是os.scandir(),使用如下:


import os

path = ...
for file in os.scandir(path): 
    print(file.name, file.path, file.is_dir())

上面代码最后输出的是给定路径下各内容的名字、绝对路径,并判断其是否是文件夹

需要注意的是os.scandir()只在路径下一级扫描,需求实现的代码如下(代码逻辑很简单,可以自己做相应调整):

import os

num = 0
for file in os.scandir(r'C:\\Program Files (x86)'):
    if file.is_dir():
        if 'Windows' in file.name:
            print(file.name)
            num += 1
print('含有Windows的文件夹个数为:', num)

2. 基于 os.listdir()

需求说明

❝

输出C:\Program Files (x86)路径下所有可执行文件 (即后缀为 .exe)

❞

步骤分析

依然是非遍历的需求,这里使用os.listdir(),它比os.scandir()简单一些,可直接调用输出名称而非路径。后缀名可以用字符串的切片来判断,但难免失去灵活性。此时建议用字符串方法string.endswith()来判断名称的结尾是否是.exe,代码如下:

import os 

for file in os.listdir(r'C:\\Program Files (x86)'):
    if file.endswith('.exe'):
        print(file)

三、遍历文件夹搜索文件

更多时候我们希望给定一个大概的路径,在这个路径下的所有文件夹里一层一层找,找到特定文件或者符合要求的文件,这里需要遍历文件,有两种主要的方法:

1. 基于 os.walk()

os.walk 遍历后产生三个参数:当前文件夹路径, 包含文件夹名称  [列表形式], 包含文件名称[列表形式]

可以用如下代码完成简单遍历:

import os

for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):
    print(f'打开文件夹{dirpath}')
    if dirnames:
        print(dirnames)
    if filenames:
        print(filenames)
    print('-' * 10)

需求说明

❝

遍历C:\Program Files (x86)找出所有新版Excel文件 (即后缀为.xlsx)

❞

步骤分析

只要理解了os.walk()的工作模式,用endswith()判断后缀即可。最后如果需要获得绝对路径可以把当前文件夹路径和文件名拼接,简单一点用 + 或者字符串格式化,也可以用os模块内的方法

import os

for dirpath, dirnames, filenames in os.walk(r'C:\\Program Files (x86)'):
    if filenames:
        for i in filenames:
            if i.endswith('.xlsx'):
                print(os.path.join(dirpath, i))

2. 基于非 os 方法:glob

glob在之前的推文也反复提到遍历框架:


import glob

for file in glob.glob('**/*', recursive=True): 
    print(file)

**/*的使用表示用通配符指代给定路径下的任何一层,recursive参数允许遍历搜索 由于glob可以使用「通配符」,大大拓宽了灵活程度,这里利用 glob 也来完成上面的需求

需求说明

❝

遍历C:\Program Files (x86)找出所有新版Excel文件(即后缀为.xlsx)

❞


import glob

for file in glob.glob('**/*.xlsx', recursive=True): 
    print(file)

可以看到非常简单,在原有代码基础上加上后缀名就能够完成特定类型文件的搜索。如果需要搜索「特定文件」,如遍历C:\Program Files (x86)找到文件practice.txt,「只需要后一个*改成具体名称就行」


import glob

for file in glob.glob('**/practice.txt', recursive=True): 
    print(file)

本文只是基于几个简单的需求来讲解使用Python来制作搜索文件脚本的主要方法,接下来你也可以根据自己的需求添加一些其他的规则或增加新的功能,打造出一款属于你自己的软件!

​

Codex办公自动化:零代码实现PPT生成与智能文件整理 办公自动化是指利用技术手段替代重复性人工操作,提升文档处理、信息整合与知识交付效率。其核心原理在于将非结构化办公任务(如会议纪要、PDF归档、Excel分析)转化为可建模、可校验、可复用的标准化流程。技术价值体现在降低AI使用门槛、保障输出一致性、强化结果可审计性。典型应用场景包括自动生成结构化PPT、语义驱动的文件重命名与归类、跨网页数据联动分析等。Codex正是基于动作引擎与模板驱动架构,实现真正开箱即用的零代码办公自动化,尤其适用于无需编程基础但亟需提升日常事务处理效率的职场人群。 阅读详情

相关推荐

Loki开源IOC扫描器:跨平台安装配置与威胁检测实战指南

入侵指标(IOC)扫描是威胁检测与应急响应的核心技术,它通过比对已知恶意特征来识别潜在威胁。其原理基于对文件哈希、网络行为、代码模式等特征的匹配,能够有效发现已披露攻击活动的痕迹。这项技术的核心价值在于为安全团队提供了一种自动化、可复用的检测手段,大幅提升了威胁狩猎与事件调查的效率。在实际应用中,IOC扫描广泛应用于服务器安全巡检、端点威胁排查、以及安全事件后的取证分析等场景。本文以业内知名的开源工具Loki扫描器为例,深入解析其基于YARA规则和IOC数据库的检测机制,并详细演示如何在Windows、Li

weixin_34414196的博客 2527

Python——文件搜索工具

介绍python中的os.walk使用方法,实现一个通过检索路径和关键字得到一个文件的具体路径和文件名的文件搜索工具

m0_60867520的博客 2425

Ghidra逆向工程快速入门:从安装配置到实战分析的10分钟指南

逆向工程是分析软件内部机制、理解无源码程序行为的关键技术领域,广泛应用于软件安全分析、漏洞挖掘、恶意代码研究和遗留系统维护等场景。其核心原理是通过反汇编、反编译等手段,将机器码转换为可读的中间表示,进而推断程序逻辑与数据结构。掌握高效的逆向工具能极大提升分析效率与深度,尤其在应对复杂二进制文件时。Ghidra作为美国国家安全局(NSA)开源的专业级框架,集成了反汇编、反编译、脚本编写和图形化分析等一体化功能,其内置的Java反编译器能将汇编代码转换为类C伪代码,显著降低了逆向工程的学习门槛。对于需要处理多种

weixin_30723433的博客 430

文件搜索工具(Python实现)

文件搜索工具能够基于名称快速定位匹配的文件和文件夹位置,比如Everything就是Windows上的一款文件搜索工具:下面我们实现一个简单的文件搜索工具。文件搜索的步骤分为两步:需要注意的是,在搜索时并不是只在用户指定的那一级目录下进行搜索,如果该目录下存在子目录,那么还需要在该子目录下进行搜索。例如,我们在D盘下创建了一个名为TestDir的目录,该目录中的文件布局如下:当我们指定在TestDir目录下以test为关键字进行查找时,我们希望的是找出TestDir目录及其子目录下,所有包含test关键字的

2021dragon的博客 3816

Typora 1.5.10 安装配置全指南:从安全下载到高效写作

Markdown作为一种轻量级标记语言,因其语法简洁、格式统一、易于转换为多种格式(如HTML、PDF)而成为技术文档、笔记和博客写作的主流选择。其核心原理是通过特定符号(如#、*、`)定义文本结构,由渲染引擎实时解析为排版精美的预览视图,实现了内容与样式的分离。这种设计为写作者提供了沉浸式的流畅体验,极大地提升了写作效率。在众多Markdown编辑器中,**Typora**以其独特的“所见即所得”实时渲染模式和极简界面脱颖而出,成为许多开发者和内容创作者的首选工具。本文聚焦于**Typora 1.5.10

weixin_34074740的博客 422

Unity AI副驾驶实战:基于MCP协议重塑游戏开发流程

在AI驱动的软件开发浪潮中,大型语言模型(LLM)与专业开发工具的深度集成正成为提升生产力的关键。其核心原理在于通过标准化的协议,让AI模型能够安全、结构化地感知和操作开发环境,从而将AI从被动的代码助手转变为主动的“开发副驾驶”。这一技术价值在于,它能将开发者从繁琐、重复且需要大量上下文切换的“脏活累活”中解放出来,使其更专注于核心创意与设计。在游戏开发领域,这一结合尤其具有变革潜力。以Unity引擎为例,通过实现MCP(Model Context Protocol)协议服务器,可以为AI副驾驶暴露项目资

weixin_30629653的博客 414

干货|使用Python快速查找电脑里的文件

电脑随着使用时间的增加,我们在电脑中储存的文件变得越来越多。当这个时候你想要查找一个文件,但是又忘记了文件的位置在哪,想通过排序查找这个文件,又由于文件夹里面文件太多,根本找不到。如果使用电脑自带的搜索,时间又很长。那么在面对海量的存储文件,其实我们可以通过其实我们可以通过Python实现本机文件的检索,帮助大家找到遗忘在电脑某处的文件。首先,介绍一下所需要的模块:os模块和re模块。

xx16755498979的博客 5677

基于MiniMax H3与ComfyUI的低成本AI视频生成实战指南

AI视频生成技术正从黑盒服务向可编程、可控制的工作流演进。其核心原理在于将文本或图像提示转化为连贯的视觉序列,关键技术涉及扩散模型、帧间预测与潜空间编码。这项技术的工程价值在于大幅降低了高质量动态内容创作的门槛,并提供了可调试、可复现的生成管线。在实际应用场景中,开发者与创作者可通过组合开源工具与云端API,实现对生成过程各环节的精细控制,从而在营销视频、动态素材、创意短片等领域实现高效生产。本文聚焦于利用MiniMax H3模型的帧扩展能力与ComfyUI的可视化节点系统,构建高性价比的生成工作流,通过热

weixin_34253126的博客 331

ZTools:开源首字母搜索启动器,打造可扩展的本地工作流

应用启动器是提升桌面操作效率的经典工具,其核心价值在于将繁琐的视觉导航压缩为按键输入式的命令流。基于首字母搜索与全局快捷键的交互设计,用户只需输入拼音或英文缩写即可瞬间唤起目标应用,从根本上减少高频操作带来的时间损耗。首字母搜索依赖预索引与拼音转换机制,匹配速度快,适合中文场景,而插件平台则让启动器从单一的工具进化为可定制的工作流入口,支持扩展自定义命令、脚本调用及本地工具链集成。这种轻量级方案不仅适用于开发者快速切换应用,也适合效率爱好者将重复操作统一收口。ZTools 作为一款开源实现,正是一个融合首字

weixin_34245082的博客 340

ChatGPT实战指南:从核心应用到避坑技巧,重塑你的工作流与学习方式

自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正深刻改变人机交互模式。其核心原理基于大规模预训练语言模型,通过海量数据学习语言的统计规律与上下文关联。这项技术的价值在于极大地降低了信息获取与处理的成本,使机器能够胜任多种语言相关的复杂任务。在实际应用中,NLP技术已广泛应用于智能对话、内容生成、代码辅助与知识问答等场景,成为提升个人与团队效率的关键工具。本文将以ChatGPT为例,深入探讨如何利用提示词工程优化输出质量,并规避模型幻觉等常见风险,帮助读者构建高效可靠的AI辅助工作流。

weixin_33709590的博客 310

Python兴趣编程百例:手把手带你开发一个桌面文件搜索小工具

在日常工作中,我们经常需要在大量的文件中查找特定的内容或者文件名,这个过程可能非常耗时和繁琐。为了提高工作效率,我们可以开发一款简单而高效的文件搜索工具。本文将介绍如何使用Python和PyQt来开发这样一个工具,并提供设计思路、分阶段代码示例以及最终的完整代码示例。

旦莫的博客 1235

用Python自动化你的日常:5个菜鸟也能上手的实用脚本(附VS Code调试技巧)

本文为Python新手提供了5个即拿即用的自动化脚本,涵盖文件批量重命名、网页信息抓取、桌面文件整理、定时任务提醒和日志分析等实用场景,并详细讲解了如何在VS Code中高效编写与调试代码,帮助初学者快速上手Python自动化,提升日常工作效率。

c7d8e9的博客 305

Python开发:高效的文件夹查找器

它可以快速地查找指定目录及其子目录下特定类型的文件,并将它们的路径输出到屏幕上。相信通过这篇文章的学习,大家能够对Python的文件操作有更深入的了解,同时也会为日常工作带来更多的便利。如果是,则使用os.path.join()方法将文件路径与根目录路径拼接起来,形成完整的文件路径,并将其保存到files_list列表中。最后,我们根据列表的长度输出找到的文件数,如果没有找到,则输出提示信息。遍历目录及其子目录,查找符合要求的文件,并将它们的路径保存到一个列表中;输出查找到的文件数量和它们的路径。

. 461

MacVim:如何在macOS上获得终极文本编辑体验?

你是否曾经在macOS上寻找一款既强大又高效的文本编辑器?是否厌倦了那些要么功能简陋、要么过于笨重的编辑器?想象一下,如果有一款工具能够将Vim的强大编辑能力与macOS的优雅界面完美结合,那会是怎样的体验?今天,我将为你介绍MacVim——这款专为macOS设计的Vim编辑器增强版,它将彻底改变你对文本编辑的认知。 ## 为什么MacVim是macOS用户的理想选择? 作为程序员、作家或系统

gitblog_01099的博客 327

服务器测试之GPU基础汇总

GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。一个专门的图形核心处理器。GPU是显示卡的“大脑”,决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。可以形象的理解为90%的ALU(运算单元),5%的Control(控制单元)、5%的Cache(缓存单元)GPU的设计原理——总结为大量的简单运算。

qq_41897488的博客 2万+

网络设备调试指南:如何用MDIO Clause22/45协议读写Marvell MV88E6390寄存器

本文深入解析了如何通过MDIO Clause 22/45协议对Marvell MV88E6390交换芯片进行寄存器读写调试。文章详细对比了两种协议的本质区别与适用场景,并重点阐述了MV88E6390的直接与间接寻址策略,提供了实战代码示例与关键调试技巧,帮助网络工程师高效解决配置与通信问题。

tequila的博客 517

ollama部署本地大模型:embeddinggemma-300m在教育领域问答系统中的落地应用

本文介绍了如何在星图GPU平台上自动化部署【ollama】embeddinggemma-300m镜像,以构建本地化教育智能问答系统。该平台简化了部署流程,用户可快速搭建基于该轻量级嵌入模型的应用,实现从海量教学文档中精准、高效地检索相关知识,从而辅助教师备课与资料查找。

weixin_31715353的博客 188

Material Studio中分子动力学模拟得到密度density和溶解度参数

使用sketh工具画出全原子分子,以异辛烷为例子。

handsome213的博客 7315

基于掌控板与TensorFlow Lite的嵌入式AI垃圾分类系统实践

图像分类是计算机视觉的基础技术,通过卷积神经网络提取特征并识别物体类别。其原理在于模型学习数据中的模式,实现自动化识别,技术价值在于将AI能力部署到资源受限的边缘设备,实现低延迟、高隐私的本地推理。在物联网和智能硬件领域,嵌入式AI应用广泛,如智能安防、工业质检等。本文聚焦垃圾分类场景,详细阐述了如何利用轻量化模型(如MobileNet)在掌控板(ESP32)上部署TensorFlow Lite模型,完成从数据采集、模型训练到嵌入式部署的全流程实践,其中涉及模型转换、内存优化等关键热词,并解决了舵机控制、电

weixin_34121304的博客 424

VSCode 远程开发:实现服务器图形化界面(GUI)的高效操作指南

本文详细介绍了如何通过VSCode远程开发实现服务器图形化界面(GUI)操作,包括X11转发原理、完整配置指南和实战测试。通过安装Xming、配置SSH连接和服务器端设置,开发者可以高效地在本地显示远程GUI应用,提升开发效率。

weixin_29245767的博客 292

吹气压力传感器US6310 US6330调试

更换压力传感器, 从US6310 更换为US6330。 6310有一个准备好引脚,AD转换完成后会给MCU一个脉冲 而6330就没有这个功能,6330这个引脚是用来选择SPI还是I2C接口的。(6330没有复位引脚,内部有POR功能) 因此在实现上是有根本区别的, 其它方面使用的命令也不一样, 6310 A8 A9两条命令,一个命令模块醒来,一个命令模块休眠, 6330只有一条命令AA, 命令模块开始转换。 针对这2个模块作为2种处理方法, 1. 6310,可以设置一...

明天乌儿会歌唱 2023

Python开发电脑文件搜索工具, 让你硬盘中的秘密文件文件无处可藏(附完整源码)

前言 嗨喽,大家好吖~这里是魔王 你是不是现在在用python做爬虫,那么其实我们爬取的网站,也可以用python去开发 今天带你初步了解 python的一个模块 tkinter,并且带领大家完成一个简单的电脑文件搜索工具 让你硬盘中的秘密文件文件无处可藏 课题: Python开发电脑文件搜索工具 课程收获: tkinter 的使用 桌面应用程序开发 开发环境: 解释器: Python 3.6.5 | Anaconda, Inc. 编辑器: pycharm 专业版 导入模块 import t

python56123的博客 1676

Hadoop与Kafka集群部署与优化实践指南

分布式系统是现代大数据处理的核心架构,其中Hadoop作为分布式存储与计算框架,Kafka作为分布式消息队列系统,共同构成了实时数据处理的基础设施。通过HDFS实现海量数据存储,结合YARN进行资源调度,而Kafka则保障了数据流的实时传输与高吞吐。这种技术组合在电商用户行为分析、物联网数据采集等场景中表现卓越。部署过程中需关注硬件资源配置、关键参数调优以及集群监控方案,例如通过调整HDFS块大小和Kafka partition数量来优化性能。合理运用Flume、Spark Streaming等工具可实现系

weixin_29061997的博客 359

Python 搜索文件夹/文件

输入路径,递归遍历路径下文件夹/文件

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 3256

Android16 rk3576添加触摸点数上限到40个点

本文介绍了在Android 16系统上实现40点触摸支持的修改方案。相比Android 15,Android 16对API添加有更严格的要求,需要在MotionEvent.java中添加@FlaggedApi批注。主要修改包括:1)在input_framework.aconfig中定义flag;2)在MotionEvent.java中添加40个AXIS_GENERIC轴常量并添加批注;3)将32位指针ID处理改为64位适配;4)更新相关API文档。修改涉及多个核心文件,包括PointerController

tzj1058756809的博客 381

CloudCompare 二次开发(16)——计算点云最值

不依赖任何第三方点云相关库,使用ClopudCompare计算点云最值。

点云侠的博客 517
上一篇: Python黑客系列之——控制自己的手机摄像头拍照,并自动发送到邮箱。
下一篇: Java居然还能实现这种骚操作?通过它来获取ip属地。
PythonJavaPHP
博客等级 码龄7年 116粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值