栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Python Watchdog在目录中发生任何更改时如何运行函数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Python Watchdog在目录中发生任何更改时如何运行函数?

您需要子类化,并在分派中做任何您想做的事情:

import sysimport timeimport loggingfrom watchdog.observers import Observerfrom watchdog.events import LoggingEventHandlerclass Event(LoggingEventHandler):    def dispatch(self, event):        print("Foobar")if __name__ == "__main__":    logging.basicConfig(level=logging.INFO,  format='%(asctime)s - %(message)s',  datefmt='%Y-%m-%d %H:%M:%S')    path = sys.argv[1] if len(sys.argv) > 1 else '.'    event_handler = Event()    observer = Observer()    observer.schedule(event_handler, path, recursive=True)    observer.start()    try:        while True: time.sleep(1)    except KeyboardInterrupt:        observer.stop()    observer.join()

如果运行该代码,则

Foobar
每当检测到更改时都会看到输出,要忽略文件,您可能需要使用[events.PatternMatchingEventHandler]
[1]。每种都有各种方法

要在某物被修改的情况下做某事,我们可以重写

on_modified

class Event(LoggingEventHandler):    def on_modified(self, event):        print("Doh")

使用上面的类和

event_handler = Event()
并更改文件来运行代码将输出如下内容:

DohDohDohDohDohDohDoh2015-10-03 15:33:55 - Created file: ./test.txt___jb_bak___2015-10-03 15:33:55 - Moved file: from ./test.txt to ./test.txt___jb_old___2015-10-03 15:33:55 - Moved file: from ./test.txt___jb_bak___ to ./test.txt2015-10-03 15:33:55 - Deleted file: ./test.txt___jb_old___Doh

[1]:您可以覆盖http://pythonhosted.org/watchdog/api.html#watchdog.events.PatternMatchingEventHandler

EventHandler
类,这完全取决于您要执行的操作。该
LoggingEventHandler
班itslef是的子类
watchdog.events.FileSystemEventHandler

class watchdog.events.FileSystemEventHandler 基础:对象

base file system event handler that you can override methods from.

dispatch(event)将事件 调度到适当的方法。

Parameters: event (FileSystemEvent) – The event object representing the file system event.

on_any_event(event) 捕获所有事件处理程序。

Parameters: event (FileSystemEvent) – The event object representing the file system event.

on_created(event) 在创建文件或目录时调用。

Parameters: event (DirCreatedEvent or FileCreatedEvent) – Event representing file/directory creation.

on_deleted(event) 删除文件或目录时调用。

Parameters: event (DirDeletedEvent or FileDeletedEvent) – Event representing file/directory deletion.

on_modified(event) 修改文件或目录时调用。

Parameters: event (DirModifiedEvent or FileModifiedEvent) – Event representing file/directory modification.

on_moved(event) 在移动或重命名文件或目录时调用。

Parameters: event (DirMovedEvent or FileMovedEvent) – Event representing file/directory movement.


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647112.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号