最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解如何使用Python實(shí)現(xiàn)文件監(jiān)控自動(dòng)化系統(tǒng)

 更新時(shí)間:2026年01月29日 08:58:04   作者:張大貍  
這篇文章主要介紹了如何使用Python實(shí)現(xiàn)文件監(jiān)控自動(dòng)化系統(tǒng),解決日常工作中的文件管理痛點(diǎn),系統(tǒng)基于Watchdog庫(kù)實(shí)時(shí)監(jiān)控文件夾,支持文件自動(dòng)分類(按類型/大小/日期)和微信通知提醒,文章詳細(xì)講解了核心代碼實(shí)現(xiàn),需要的朋友可以參考下

一、為什么需要文件監(jiān)控自動(dòng)化?

在日常工作中,你是否經(jīng)常遇到這樣的困擾:

  • 同事發(fā)來的文件混雜在下載文件夾里,需要手動(dòng)整理
  • 重要文件被修改卻沒能及時(shí)察覺
  • 緊急合同上傳后,需要反復(fù)刷新查看是否到位

?傳統(tǒng)方式 vs 自動(dòng)化方案對(duì)比?:

方式響應(yīng)速度準(zhǔn)確性持續(xù)工作能力
人工檢查分鐘級(jí)依賴注意力8小時(shí)/天
Python監(jiān)控?秒級(jí)??100%??24小時(shí)/天

二、核心技術(shù):Watchdog庫(kù)詳解

1. 基礎(chǔ)監(jiān)控實(shí)現(xiàn)

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import time

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        print(f'新文件出現(xiàn): {event.src_path}')
        # 這里添加文件處理邏輯

if __name__ == "__main__":
    path = "C:/監(jiān)控文件夾"  # 替換為你的監(jiān)控路徑,比如微信文件存儲(chǔ)路徑,各類下載文件夾等
    event_handler = MyHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()
    
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

?關(guān)鍵參數(shù)說明?:

  • recursive=True:監(jiān)控子文件夾
  • event.src_path:獲取文件完整路徑
  • on_created:響應(yīng)文件創(chuàng)建事件(還有on_modified, on_deleted等)

2. 增強(qiáng)功能:文件智能分類

def auto_classify(file_path):
    """根據(jù)擴(kuò)展名自動(dòng)分類文件"""
    from pathlib import Path
    import shutil
    
    ext_map = {
        '.pdf': '文檔',
        '.jpg': '圖片',
        '.xlsx': '表格'
    }
    
    file = Path(file_path)
    if file.is_file():
        ext = file.suffix.lower()
        target_dir = Path(file.parent) / ext_map.get(ext, '其他')
        target_dir.mkdir(exist_ok=True)
        shutil.move(str(file), target_dir)
        return target_dir / file.name

?分類規(guī)則擴(kuò)展建議?:

  • 按項(xiàng)目名稱分類(從文件名提取關(guān)鍵詞)
  • 按文件大小分類(大文件單獨(dú)存放)
  • 按修改日期分類(自動(dòng)歸檔舊文件)

三、微信實(shí)時(shí)通知實(shí)現(xiàn)

1. 通過Server醬推送

import requests

def wechat_notify(title, content):
    """發(fā)送微信通知"""
    SCKEY = "你的Server醬SCKEY"  # 在https://sct.ftqq.com申請(qǐng)
    url = f"https://sc.ftqq.com/{SCKEY}.send"
    data = {
        "text": title,
        "desp": content
    }
    requests.post(url, data=data)

2. 企業(yè)微信機(jī)器人通知

def qywx_notify(content):
    """企業(yè)微信機(jī)器人通知"""
    webhook = "你的企業(yè)微信群機(jī)器人Webhook地址"
    headers = {'Content-Type': 'application/json'}
    data = {
        "msgtype": "text",
        "text": {
            "content": content,
            "mentioned_mobile_list": ["13800138000"]  # 需要@的人
        }
    }
    requests.post(webhook, headers=headers, json=data)

?通知內(nèi)容優(yōu)化建議?:

  • 包含文件類型、大小、修改時(shí)間
  • 添加快速訪問鏈接(局域網(wǎng)路徑)
  • 重要文件變更@特定人員

四、完整實(shí)戰(zhàn)案例

1. 監(jiān)控+分類+通知完整代碼

import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from pathlib import Path
import shutil
import requests

class SmartFileHandler(FileSystemEventHandler):
    def __init__(self):
        self.ext_map = {
            '.pdf': '文檔',
            '.docx': '文檔',
            '.xlsx': '表格',
            '.jpg': '圖片'
        }
    
    def on_created(self, event):
        file_path = event.src_path
        if Path(file_path).is_file():
            target_path = self.classify_file(file_path)
            self.send_notification(file_path, target_path)
    
    def classify_file(self, file_path):
        """文件自動(dòng)分類"""
        file = Path(file_path)
        ext = file.suffix.lower()
        target_dir = Path(file.parent) / self.ext_map.get(ext, '其他')
        target_dir.mkdir(exist_ok=True)
        shutil.move(str(file), target_dir)
        return target_dir / file.name
    
    def send_notification(self, origin_path, target_path):
        """發(fā)送微信通知"""
        file = Path(origin_path)
        msg = f"?? 新文件提醒\n\n" \
              f"文件名:{file.name}\n" \
              f"類型:{file.suffix}\n" \
              f"大?。簕file.stat().st_size/1024:.2f}KB\n" \
              f"存放位置:{target_path}"
        wechat_notify("文件監(jiān)控提醒", msg)

def main():
    path = "C:/監(jiān)控文件夾"  # 設(shè)置監(jiān)控路徑
    event_handler = SmartFileHandler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()
    
    print(f"開始監(jiān)控文件夾: {path}")
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

if __name__ == "__main__":
    main()

2. 部署與優(yōu)化建議

?部署方式?:

Windows系統(tǒng):打包為exe后臺(tái)運(yùn)行

pyinstaller --onefile --windowed file_monitor.py

Linux系統(tǒng):配置為systemd服務(wù)

sudo nano /etc/systemd/system/filemon.service

?性能優(yōu)化?:

添加文件過濾:只監(jiān)控特定類型文件

if not file_path.endswith(('.pdf', '.docx')):
    return

設(shè)置延遲處理:避免短時(shí)間重復(fù)觸發(fā)

last_trigger = 0
def on_created(self, event):
    if time.time() - last_trigger < 5:  # 5秒內(nèi)不重復(fù)處理
        return
    last_trigger = time.time()

五、企業(yè)級(jí)增強(qiáng)方案

安全增強(qiáng)實(shí)現(xiàn)部分源碼

def check_virus(file_path):
    """簡(jiǎn)單的文件安全檢查"""
    blacklist = ['.exe', '.bat', '.vbs']
    if Path(file_path).suffix.lower() in blacklist:
        wechat_notify("安全警報(bào)", f"發(fā)現(xiàn)可疑文件: {file_path}")
        quarantine_file(file_path)  # 隔離可疑文件

以上就是一文詳解如何使用Python實(shí)現(xiàn)文件監(jiān)控自動(dòng)化系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)監(jiān)控文件夾的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中functools模塊函數(shù)解析

    Python中functools模塊函數(shù)解析

    這篇文章主要介紹了Python中functools模塊的常用函數(shù)解析,分別講解了functools.cmp_to_key,functools.total_ordering,functools.reduce,functools.partial,functools.update_wrapper和functools.wraps的用法,需要的朋友可以參考下
    2017-03-03
  • pytorch:torch.mm()和torch.matmul()的使用

    pytorch:torch.mm()和torch.matmul()的使用

    今天小編就為大家分享一篇pytorch:torch.mm()和torch.matmul()的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python常見字符串操作函數(shù)小結(jié)【split()、join()、strip()】

    Python常見字符串操作函數(shù)小結(jié)【split()、join()、strip()】

    這篇文章主要介紹了Python常見字符串操作函數(shù),結(jié)合實(shí)例形式總結(jié)分析了split()、join()及strip()的常見使用技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-02-02
  • python flask安裝和命令詳解

    python flask安裝和命令詳解

    Flask是使用Python編寫的Web微框架,這篇文章主要介紹了python flask安裝和命令,需要的朋友可以參考下
    2019-04-04
  • MySQL Prepared語(yǔ)句的具體使用

    MySQL Prepared語(yǔ)句的具體使用

    本文主要介紹了MySQL Prepared語(yǔ)句的具體使用,可以利用prepared語(yǔ)句來避免重復(fù)解析SQL的開銷,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-09-09
  • 一文搞懂霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)

    一文搞懂霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)

    霍夫曼樹是一種用于數(shù)據(jù)壓縮的樹形結(jié)構(gòu),通過構(gòu)建具有最小帶權(quán)路徑長(zhǎng)度的二叉樹,實(shí)現(xiàn)高效的數(shù)據(jù)編碼,這篇文章主要介紹了霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • 使用python制作一款文件粉碎工具

    使用python制作一款文件粉碎工具

    這篇文章主要為大家詳細(xì)介紹了如何使用python制作一款文件粉碎工具,能夠有效粉碎密碼文件和機(jī)密Excel表格等,感興趣的小伙伴可以了解一下
    2025-08-08
  • Python使用ctypes調(diào)用Windows API清空回收站

    Python使用ctypes調(diào)用Windows API清空回收站

    很多朋友剛接觸 Windows 編程時(shí),總覺得調(diào)用系統(tǒng)底層 API 是一件很高深、非常復(fù)雜的事情,感到很害怕,本文就以實(shí)現(xiàn) Windows 上的 清空回收站功能為例,從零開始詳解 Python 如何通過 ctypes 庫(kù)跟 Windows API 進(jìn)行交互調(diào)用,需要的朋友可以參考下
    2026-04-04
  • Python 復(fù)平面繪圖實(shí)例

    Python 復(fù)平面繪圖實(shí)例

    今天小編就為大家分享一篇Python 復(fù)平面繪圖實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python實(shí)現(xiàn)打印九九乘法表的不同方法總結(jié)

    Python實(shí)現(xiàn)打印九九乘法表的不同方法總結(jié)

    這篇文章主要為大家介紹了Python實(shí)現(xiàn)打印九九乘法表的幾種不同方法,文中的示例代碼講解詳細(xì),簡(jiǎn)潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11

最新評(píng)論

鱼台县| 南阳市| 云浮市| 南乐县| 五指山市| 镇江市| 都江堰市| 余江县| 福州市| 金川县| 尤溪县| 离岛区| 东宁县| 寿宁县| 屏边| 静宁县| 浪卡子县| 讷河市| 信丰县| 东阿县| 禄丰县| 绵竹市| 治多县| 通许县| 丰镇市| 五原县| 泾川县| 剑阁县| 蒙城县| 保德县| 溆浦县| 驻马店市| 阳春市| 卢氏县| 三河市| 英山县| 沽源县| 麟游县| 瑞金市| 石屏县| 肥西县|