天天看點

Python自動化:一鍵查找檔案,告别手動翻找!拯救你的“檔案堆”

作者:人工智能取經人

你是否曾經為了找一個檔案而翻遍了整個電腦,甚至陷入了“明明就存了,怎麼也找不到”的困境?今天,我将為大家揭秘一項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自動化:一鍵查找檔案,告别手動翻找!拯救你的“檔案堆”

按照檔案内容查找檔案

但是,有時我們可能隻知道檔案内容中的某個關鍵詞或特定格式,這時就需要按照檔案内容來查找檔案了。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多個比對的檔案,效率驚人

Python自動化:一鍵查找檔案,告别手動翻找!拯救你的“檔案堆”
Python自動化:一鍵查找檔案,告别手動翻找!拯救你的“檔案堆”

一鍵查找檔案,讓你的電腦井井有條

通過将以上代碼打包成exe檔案【方法可以參照我的另一篇文章《人人都能享受辦公自動化的便利——三步将Python程式轉為軟體》】,小李終于能夠輕松實作一鍵查找檔案的功能了。他的工作效率大大提高,再也不用為了找一個檔案而煩惱了。更重要的是,他的電腦也變得更加井井有條了!

親愛的朋友們,如果你也和小李一樣遇到了檔案查找的煩惱,不妨試試這些Python神技吧!希望它們能為你帶來幫助。

如果你喜歡這篇文章,請點贊、分享并關注我們的公衆号,我們将為你帶來更多有趣、實用的技術文章

Python自動化辦公46

Python自動化辦公 · 目錄

上一篇Python自動化辦公,告别加班苦海!一鍵解決工資條發放大難題!下一篇python自動化辦公:4秒鐘生成399份榮譽證書,效率提升2萬倍,解放雙手!