广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python-使用watchdog热更新
  • 129
分享到

Python-使用watchdog热更新

Pythonwatchdog 2023-01-31 01:01:31 129人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

直接上代码: import importlib from watchdog.observers import Observer from watchdog.events import * class ScriptEventHa

直接上代码:

import importlib
from watchdog.observers import Observer
from watchdog.events import *


class ScriptEventHandler(FileSystemEventHandler):
    def __init__(self):
        FileSystemEventHandler.__init__(self)

    # 文件移动
    def on_moved(self, event):
        if event.is_directory:
            print("directory moved from {0} to {1}".fORMat(event.src_path, event.dest_path))
        else:
            print("file moved from {0} to {1}".format(event.src_path, event.dest_path))

    # 文件新建
    def on_created(self, event):
        if event.is_directory:
            print("directory created:{0}".format(event.src_path))
        else:
            self.reload_module(event.src_path)
            print("file created:{0}".format(event.src_path))

    # 文件删除
    def on_deleted(self, event):
        if event.is_directory:
            print("directory deleted:{0}".format(event.src_path))
        else:
            print("file deleted:{0}".format(event.src_path))

    # 文件修改
    def on_modified(self, event):
        if event.is_directory:
            print("directory modified:{0}".format(event.src_path))
        else:
            print("file modified:{0}".format(event.src_path))
            self.reload_module(event.src_path)

    # 重载模块
    def reload_module(self, module_name: str):
        module_name = module_name.replace('/', '.')
        module_name = module_name.replace('.py', '')
        instance = importlib.import_module(module_name)
        if instance:
            importlib.reload(instance)

observer = Observer()
event_handler = ScriptEventHandler()
# ./test为需要监控的目录
self.observer.schedule(event_handler,'./test', False)
self.observer.start()

--结束END--

本文标题: Python-使用watchdog热更新

本文链接: https://www.lsjlt.com/news/184407.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python-使用watchdog热更新
    直接上代码: import importlib from watchdog.observers import Observer from watchdog.events import * class ScriptEventHa...
    99+
    2023-01-31
    Python watchdog
  • Python 软件热更新
    本篇文章涉及技术知识如下: Redis threading 多线程 PyQt5 importlib 热更新 场景 咱们在平时运行一些长时间都会一直运行的软件(如:某些云同步软件)的时候,某些功能因为考虑的情况可能不充分,导致体验不...
    99+
    2023-01-31
    软件 Python
  • 使用CocosCreator怎么实现热更新
    今天就跟大家聊聊有关使用CocosCreator怎么实现热更新,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。什么是热更热更(新)本质上是从服务器下载需要的资源到本地,并且可以执行新的...
    99+
    2023-06-14
  • Android微信Tinker热更新详细使用
    先看一下效果图 Tinker已知问题 由于原理与系统限制,Tinker有以下已知问题: Tinker不支持修改AndroidManifest.xml,Tinker不支持新...
    99+
    2022-06-06
    tinker 更新 Android
  • Python在游戏中的热更新实现
    目录介绍:原理:1.标准import2.reload函数实现:总结:介绍: 热更新,就是在服务器不重启的的情况下,对游戏增加新的功能或者修复出现bug 的代码。游戏更新迭代速度快,...
    99+
    2022-11-12
  • python中的热更新或动态加载
    遍览网络中关于动态加载模块的文章,发现有两种方法,一种是用守护进程的方法,一种是用python自带的reload函数。 比较靠谱的文章是如下两篇: https://my.oschina.net/1123581321/blog/168720...
    99+
    2023-01-31
    加载 动态 python
  • 怎么用import.meta实现热更新
    这篇“怎么用import.meta实现热更新”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用import.meta实现热...
    99+
    2023-06-30
  • Python在游戏中如何进行热更新处理
    小编给大家分享一下Python在游戏中如何进行热更新处理,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!原理:1.标准import都知道Python提供了import可以导入一个标准的python模块,将模块载入内存,并加到...
    99+
    2023-06-25
  • 微信Android热更新Tinker使用详解(星空武哥)
    Tinker是什么Tinker是微信官方的Android热补丁解决方案,它支持动态下发代码、So库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker来更新你的插件。它主要包括以下几个部分:gradle编译插...
    99+
    2023-05-30
    android 热更新 tinker
  • KotlinStateFlow单数据更新热流设计与使用介绍
    目录一.StateFlow的设计1.StateFlow接口2. MutableStateFlow接口二.StateFlow的使用1.MutableStateFlow方法2.使用示例一...
    99+
    2022-11-13
  • 使用webpack配置react-hot-loader热加载局部更新
    目录webpack配置react-hot-loader热加载局部更新步骤1步骤2步骤3步骤4步骤5步骤6react-hot-loader热加载不生效的可能问题总结webpack配置r...
    99+
    2023-01-16
    webpack配置react-hot-loader webpack配置react react-hot-loader热加载局部更新
  • spring boot 即时重新启动(热更替)使用说明
    需求使用 spring-boot 项目开发中,项目启动时“非常”慢的。如果每次修改代码或静态资源文件后都需要重新启动项目,这是多么痛苦的事。如何让项目又改动时即时“重启”呢引出spring-boot-devtools 该 spring 模块...
    99+
    2023-05-30
    spring boot 重新启动
  • python基于函数替换的热更新原理介绍
    热更新即在不重启进程或者不离开Python interpreter的情况下使得被编辑之后的python源码能够直接生效并按照预期被执行新代码。平常开发中,热更能极大提高程序开发和调试的效率,在修复线上bug中更是扮演重要的角色。但是要想实...
    99+
    2023-01-30
    函数 原理 python
  • React Native怎么采用Hermes热更新打包
    这篇文章主要介绍“React Native怎么采用Hermes热更新打包”,在日常操作中,相信很多人在React Native怎么采用Hermes热更新打包问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希...
    99+
    2023-06-30
  • 使用conda更新python版本
    目录 一、更新原因 二、步骤         2.1、添加conda下载镜像         2.2、conda更新python         2.3、更新conda版本 三、验证 四、离线安装 一、更新原因         ...
    99+
    2023-09-09
    python conda linux linux离线安装环境
  • Node.js巧妙实现Web应用代码热更新
    背景 相信使用 Node.js 开发过 Web 应用的同学一定苦恼过新修改的代码必须要重启 Node.js 进程后才能更新的问题。习惯使用 PHP 开发的同学更会非常的不适用,大呼果然还是我大PHP才是世界...
    99+
    2022-06-04
    巧妙 代码 Node
  • 教你巧用 import.meta 实现热更新的问题
    目录import.meta应用场景URL()二者结合使用import.meta import.meta 是一个给 JavaScript 模块暴露特定上下文的元数据属性的对象,它包含了...
    99+
    2022-11-13
  • 如何使用webpack配置react-hot-loader热加载局部更新
    这篇文章主要讲解了“如何使用webpack配置react-hot-loader热加载局部更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用webpack配置react-hot-loa...
    99+
    2023-07-05
  • python 动态导入模块实现模块热更新的方法
    最近有个部署需求,需要读取py文件格式的配置项,我的实现思路是把配置文件解析到内存中。主要使用两种方法: importlib.import_moduletypes.ModuleTyp...
    99+
    2022-11-11
  • React Native采用Hermes热更新打包方案详解
    目录1, 背景2,热更新传统方案3,使用Hermes打包1, 背景 如果我们打开RN的Android源码,在build.gradle中回看到这样一段代码。 if (enableH...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作