使用Python在MacOS上实现对文件夹的监控

作者:佚名 上传时间:2023-03-18 运行软件:PyCharm 软件版本:Python 3.7.7 版权申诉

本示例演示如何使用Python在MacOS上实现对文件夹的监控,当文件夹中出现新文件时发送邮件通知。实现方式使用Python库watchdog和SMTP协议。

import os
import sys
import time
import logging
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler

class Handler(FileSystemEventHandler):
    def on_created(self, event):
        if event.is_directory:
            return None
        else:
            self.send_email(event.src_path)

    def send_email(self, source_path):
        to_email = 'your_email@example.com'
        from_email = 'your_email@example.com'
        password = 'your_password'
        smtp_server = 'smtp.example.com'

        subject = 'New File Created'
        message = 'A new file has been created: ' + source_path

        msg = MIMEMultipart()
        msg['From'] = from_email
        msg['To'] = to_email
        msg['Subject'] = subject

        part = MIMEText(message)
        msg.attach(part)

        part = MIMEApplication(open(source_path, 'rb').read(), Name=os.path.basename(source_path))
        part['Content-Disposition'] = 'attachment; filename="%s"' % os.path.basename(source_path)
        msg.attach(part)

        try:
            server = smtplib.SMTP(smtp_server, 587)
            server.starttls()
            server.login(from_email, password)
            server.sendmail(from_email, to_email, msg.as_string())
            server.quit()
            logging.info("Email sent!")
        except Exception as e:
            logging.error("Error sending email: " + str(e))

if __name__ == "__main__":
    path = sys.argv[1] if len(sys.argv) > 1 else '.'
    event_handler = Handler()
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    observer.start()
    logging.info("Monitoring folder: " + os.path.abspath(path))
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
使PythonMacOS
本示例演示如何使用Python在MacOS上实现对文件夹的监控,当文件夹中出现新文件时发送邮件通知。实现方式使用Python库watchdog和SMTP协议。import osimport sys
Python 3.7.7
PyCharm
2023-03-18 17:12
python实现对文件夹文件排序编号
下面小编就为大家分享一篇python 实现对文件夹内的文件排序编号,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PDF
29KB
2020-12-13 04:14
macOS使Python备份
本示例代码演示如何使用Python在macOS上创建一个简单的文件夹备份工具,该工具会将指定文件夹的内容复制到另一个目标文件夹中,同时保留原始文件夹结构。import shutilimport o
Python 3.9.1
macOS 11.2.3
2023-12-03 12:11
监控文件及一级文件夹对文件夹权限变更监控
监控文件及一级文件(夹)和对文件(夹)权限变更的监控;(注:由于不知道怎么去更新之前上传的资源只能重新上次一个用作更新之前发布的;)
RAR
0B
2019-07-12 19:29
实现对文件夹定期备份
可实现对文件的定期备份,日志操作欢迎您给我提建议
RAR
0B
2019-07-24 20:58
macOS使Python备份
这段示例代码展示了如何使用Python语言在macOS系统上创建一个简单的文件夹备份工具。它通过shutil库中的函数实现文件夹的复制,并在控制台打印出备份完成的信息。这个脚本可以用于定期备份重要文件
macOS 10.15及以上、Python 3.6及以上
Python集成开发环境(IDE)如PyCharm或Visual Studio Code
2023-11-18 00:07
python文件夹进行监控
基于pyinotify模块API接口,对文件夹进行监控和通知处理事件。以及通过对文件的最后修改时间的在间隔时间段内是否变化,来判断文件是否写入完成。
PY
2KB
2020-08-22 15:41
对文件夹不同
可以比较两个文件夹中缺少不同的文件或文件夹,另一个功能是查询一个值是否存在某个xml内
RAR
685KB
2020-08-31 05:30
python实现对文件夹图像连续重命名方法
今天小编就为大家分享一篇python 实现对文件夹中的图像连续重命名方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PDF
25KB
2020-11-29 10:39
如何macOS使Python删除
本示例代码演示了如何在macOS上使用Python删除指定路径的文件夹,其中包括递归删除子文件夹和子文件。实现方式是借助Python自带的os模块和shutil模块。import osimport
macOS High Sierra 10.13.6
Python 3.7.7
2023-04-07 05:16