百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python自动化:一键查找文件,告别手动翻找!拯救你的“文件堆”

off999 2024-10-26 12:07 23 浏览 0 评论

你是否曾经为了找一个文件而翻遍了整个电脑,甚至陷入了“明明就存了,怎么也找不到”的困境?今天,我将为大家揭秘一项Python神技——一键查找文件,让你从此告别手动翻找的烦恼!



小李的"文件堆"


我的朋友小李是他们公司的核心设计元老。自公司成立以来,所有的产品设计都出自小李之手,而所有的产品参数也都是他在精心记录。但是,小李有一个小小的“坏习惯”——他并不是一个擅长文件整理的人。

在小李的电脑里,无数的文件直接存放在C盘或者微信的缓存路径中,犹如一座座未开发的“矿山”。每当公司需要回顾某个产品的设计原稿或者查找某个产品的参数时,小李就需要花费大量的时间去手动翻找这些文件。这不仅浪费了他宝贵的时间,也给他的工作带来了不少麻烦。这时就需要能够按照文件名和文件关键词的工具

按照文件名查找,轻松定位目标文件

在浩如烟海的文件中,有时我们只需要根据文件名就能快速定位到目标文件。Windows自带的这个功能有两大问题:一是无法全局搜索,二是搜索速度极慢。

当你知道文件名或文件名模式时,Python的glob模块就能大显身手。通过简单的几行代码,你就能按照文件名模式查找文件,Python的glob模块就能派上大用场。通过简单的几行代码,你就能按照文件名模式查找文件,无论是全局文件还是当前目录还是子目录中的文件,只需要你输入你想要查找的硬盘范围和文件名格式,都能轻松找到。

import glob  


def find_files_by_name(pattern, path='.'):  
    """  
    按照文件名查找文件  


    :param pattern: 文件名模式,例如 "*vft*.pdf,文件名包含vft的pdf文件"  
    :param path: 查找的目录路径,默认为当前目录  
    :return: 匹配到的文件列表  
    """  
    return glob.glob(f'{path}/**/{pattern}', recursive=True)  


# 使用示例  
file_list = find_files_by_name("*vft*.pdf",'E:\\code\\pdf2word\\')  
for file_path in file_list:  
    print(file_path)
    


按照文件内容查找文件


但是,有时我们可能只知道文件内容中的某个关键词或特定格式,这时就需要按照文件内容来查找文件了。Python的os和re模块将助你一臂之力

import os  
import re  
import time




st = time.time()  
# 假设小李要查找包含"import"关键词的文件  
def search_content(key_word,root_dir):


    pattern = re.compile(key_word)  
    matching_files = []  


    for root, dirs, files in os.walk(root_dir):  
        for file in files:  
            file_path = os.path.join(root, file)  
            if file_path.endswith(('.psd', '.ai', '.txt', '.csv',".xlsx",".docx",".py")):  # 假设小李的文件主要是这些类型  
                with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:  
                    content = f.read()  
                    if pattern.search(content):  
                        matching_files.append(file_path)  
    return matching_files


# 输出匹配到的文件路径  
file_paths = search_content(r'import',"E:\\")


for file_path in file_paths:  
    print(file_path)
et = time.time()
u_t = et - st
print(f"一共查找到了{len(file_paths)}个文件")
print(f"用时{u_t}s")


仅需6s就能从370G的硬盘中,查找到了29000多个匹配的文件,效率惊人


一键查找文件,让你的电脑井井有条


通过将以上代码打包成exe文件【方法可以参照我的另一篇文章《人人都能享受办公自动化的便利——三步将Python程序转为软件》】,小李终于能够轻松实现一键查找文件的功能了。他的工作效率大大提高,再也不用为了找一个文件而烦恼了。更重要的是,他的电脑也变得更加井井有条了!

亲爱的朋友们,如果你也和小李一样遇到了文件查找的烦恼,不妨试试这些Python神技吧!希望它们能为你带来帮助。

如果你喜欢这篇文章,请点赞、分享并关注我们的公众号,我们将为你带来更多有趣、实用的技术文章

Python自动化办公46

Python自动化办公 · 目录

上一篇Python自动化办公,告别加班苦海!一键解决工资条发放大难题!下一篇python自动化办公:4秒钟生成399份荣誉证书,效率提升2万倍,解放双手!

相关推荐

Python函数参数和返回值类型:让你的代码更清晰、更健壮

在Python开发中,你是否遇到过这些抓狂时刻?同事写的函数参数类型全靠猜调试两小时发现传了字符串给数值计算函数重构代码时不知道函数返回的是列表还是字典今天教你两招,彻底解决类型混乱问题!让你的...

有公司内部竟然禁用了python开发,软件开发何去何从?

今天有网友在某社交平台发文:有公司内部竟然禁止了python开发!帖子没几行,评论却炸锅了。有的说“太正常,Python本就不适合做大项目”,还有的反驳“飞书全员用Python”。暂且不说这家公司...

写 Python 七年才发现的七件事:真正提高生产力的脚本思路

如果你已经用Python写了不少脚本,却总觉得代码只是“能跑”,这篇文章或许会刷新你对这门语言的认知。以下七个思路全部来自一线实战,没有花哨的概念,只有可落地的工具与习惯。它们曾帮我省下大量无意义...

用Python写一个A*搜索算法含注释说明

大家好!我是幻化意识流。今天我们用Python写一个A*搜索算法的代码,我做了注释说明,欢迎大家一起学习:importheapq#定义搜索节点类,包括当前状态、从初始状态到该状态的代价g、从该状态...

使用python制作一个贪吃蛇游戏,并为每一句添加注释方便学习

今天来设计一个贪吃蛇的经典小游戏。先介绍下核心代码功能(源代码请往最后面拉):游戏功能:-四个难度等级:简单(8FPS)、中等(12FPS)、困难(18FPS)、专家(25FPS)-美...

Python 之父 Guido van Rossum 宣布退休

Python之父GuidovanRossum在推特公布了自己从Dropbox公司离职的消息,并表示已经退休。他还提到自己在Dropbox担任工程师期间学到了很多东西——Python的类型注解(T...

4 个早该掌握的 Python 类型注解技巧

在Python的开发过程中,类型注解常常被忽视。但当面对一段缺乏类型提示、逻辑复杂的代码时,理解和维护成本会迅速上升,极易陷入“阅读地狱”。本文整理了4个关于Python类型注解的重要技巧...

让你的Python代码更易读:7个提升函数可读性的实用技巧

如果你正在阅读这篇文章,很可能你已经用Python编程有一段时间了。今天,让我们聊聊可以提升你编程水平的一件事:编写易读的函数。请想一想:我们花在阅读代码上的时间大约是写代码的10倍。所以,每当你创建...

Python异常模块和包

异常当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”,也就是我们常说的BUG例如:以`r`方式打开一个不存在的文件。f=open('...

别再被 return 坑了!一文吃透 Python return 语句常见错误与调试方法

Pythonreturn语句常见错误与调试方法(结构化详解)一.语法错误:遗漏return或返回值类型错误错误场景pythondefadd(a,b):print(a+b)...

Python数据校验不再难:Pydantic库的工程化实践指南

在FastAPI框架横扫Python后端开发领域的今天,其默认集成的Pydantic库正成为处理数据验证的黄金标准。这个看似简单的库究竟隐藏着哪些让开发者爱不释手的能力?本文将通过真实项目案例,带您解...

python防诈骗的脚本带注释信息

以下是一个简单但功能完整的防诈骗脚本,包含URL检测、文本分析和风险评估功能。代码结构清晰,带有详细注释,适合作为个人或家庭防诈骗工具使用。这个脚本具有以下功能:文本诈骗风险分析:检测常见诈骗关键...

Python判断语句

布尔类型和比较运算符布尔类型的定义:布尔类型只有两个值:True和False可以通过定义变量存储布尔类型数据:变量名称=布尔类型值(True/False)布尔类型不仅可以自行定义,同时也可通过...

使用python编写俄罗斯方块小游戏并为每一句添加注释,方便学习

先看下学习指导#俄罗斯方块游戏开发-Python学习指导##项目概述这个俄罗斯方块游戏是一个完整的Python项目,涵盖了以下重要的编程概念:-面向对象编程(OOP)-游戏开发基础-数据...

Python十大技巧:不掌握这些,你可能一直在做无用功!

在编程的世界里,掌握一门语言只是起点,如何写出优雅、高效的代码才是真功夫。Python作为最受欢迎的编程语言之一,拥有简洁明了的语法,但要想真正精通这门语言,还需要掌握一些实用的高级技巧。一、列表推导...

取消回复欢迎 发表评论: