你是否曾經為了找一個檔案而翻遍了整個電腦,甚至陷入了“明明就存了,怎麼也找不到”的困境?今天,我将為大家揭秘一項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萬倍,解放雙手!