你是否曾经为了找一个文件而翻遍了整个电脑,甚至陷入了“明明就存了,怎么也找不到”的困境?今天,我将为大家揭秘一项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万倍,解放双手!