我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python文件夹,文件监听工具(pyi

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python文件夹,文件监听工具(pyi

全栈工程师开发手册 (作者:栾鹏)
架构系列文章

支持的监控事件

@cvar IN_ACCESS: File was accessed.
@type IN_ACCESS: int
@cvar IN_MODIFY: File was modified.
@type IN_MODIFY: int
@cvar IN_ATTRIB: Metadata changed.
@type IN_ATTRIB: int
@cvar IN_CLOSE_WRITE: Writtable file was closed.
@type IN_CLOSE_WRITE: int
@cvar IN_CLOSE_NOWRITE: Unwrittable file closed.
@type IN_CLOSE_NOWRITE: int
@cvar IN_OPEN: File was opened.
@type IN_OPEN: int
@cvar IN_MOVED_FROM: File was moved from X.
@type IN_MOVED_FROM: int
@cvar IN_MOVED_TO: File was moved to Y.
@type IN_MOVED_TO: int
@cvar IN_CREATE: Subfile was created.
@type IN_CREATE: int
@cvar IN_DELETE: Subfile was deleted.
@type IN_DELETE: int
@cvar IN_DELETE_SELF: Self (watched item itself) was deleted.
@type IN_DELETE_SELF: int
@cvar IN_MOVE_SELF: Self (watched item itself) was moved.
@type IN_MOVE_SELF: int
@cvar IN_UNMOUNT: Backing fs was unmounted.
@type IN_UNMOUNT: int
@cvar IN_Q_OVERFLOW: Event queued overflowed.
@type IN_Q_OVERFLOW: int
@cvar IN_IGNORED: File was ignored.
@type IN_IGNORED: int
@cvar IN_ONLYDIR: only watch the path if it is a directory (new
                  in kernel 2.6.15).
@type IN_ONLYDIR: int
@cvar IN_DONT_FOLLOW: don't follow a symlink (new in kernel 2.6.15).
                      IN_ONLYDIR we can make sure that we don't watch
                      the target of symlinks.
@type IN_DONT_FOLLOW: int
@cvar IN_EXCL_UNLINK: Events are not generated for children after they
                      have been unlinked from the watched directory.
                      (new in kernel 2.6.36).
@type IN_EXCL_UNLINK: int
@cvar IN_MASK_ADD: add to the mask of an already existing watch (new
                   in kernel 2.6.14).
@type IN_MASK_ADD: int
@cvar IN_ISDIR: Event occurred against dir.
@type IN_ISDIR: int
@cvar IN_ONESHOT: Only send event once.
@type IN_ONESHOT: int
@cvar ALL_EVENTS: Alias for considering all of the events.
@type ALL_EVENTS: int

python 3.6的demo

import sys
import os
import pyinotify

WATCH_PATH = '/home/lp/ftp'  # 监控目录

if not WATCH_PATH:
    print("The WATCH_PATH setting MUST be set.")
    sys.exit()
else:
    if os.path.exists(WATCH_PATH):
        print('Found watch path: path=%s.' % (WATCH_PATH))
    else:
        print('The watch path NOT exists, watching stop now: path=%s.' % (WATCH_PATH))
        sys.exit()



# 事件回调函数
class OnIOHandler(pyinotify.ProcessEvent):
    # 重写文件写入完成函数
    def process_IN_CLOSE_WRITE(self, event):
        # logging.info("create file: %s " % os.path.join(event.path, event.name))
        # 处理成小图片,然后发送给grpc服务器或者发给kafka
        file_path = os.path.join(event.path, event.name)
        print('文件完成写入',file_path)
    # 重写文件删除函数
    def process_IN_DELETE(self, event):
        print("文件删除: %s " % os.path.join(event.path, event.name))
    # 重写文件改变函数
    def process_IN_MODIFY(self, event):
        print("文件改变: %s " % os.path.join(event.path, event.name))

    # 重写文件创建函数
    def process_IN_CREATE(self, event):
        print("文件创建: %s " % os.path.join(event.path, event.name))




def auto_compile(path='.'):

    wm = pyinotify.WatchManager()
    # mask = pyinotify.EventsCodes.ALL_FLAGS.get('IN_CREATE', 0)
    # mask = pyinotify.EventsCodes.FLAG_COLLECTIONS['OP_FLAGS']['IN_CREATE']                             # 监控内容,只监听文件被完成写入
    mask = pyinotify.IN_CREATE | pyinotify.IN_CLOSE_WRITE
    notifier = pyinotify.ThreadedNotifier(wm, OnIOHandler())    # 回调函数
    notifier.start()
    wm.add_watch(path, mask, rec=True, auto_add=True)
    print('Start monitoring %s' % path)
    while True:
        try:
            notifier.process_events()
            if notifier.check_events():
                notifier.read_events()
        except KeyboardInterrupt:
            notifier.stop()
            break

if __name__ == "__main__":
    auto_compile(WATCH_PATH)
    print('monitor close')

支持的监控事件

EVENT_TYPE_MODIFIED: self.on_modified,
EVENT_TYPE_MOVED: self.on_moved,
EVENT_TYPE_CREATED: self.on_created,
EVENT_TYPE_DELETED: self.on_deleted,

需要注意的是,文件改变,也会触发文件夹的改变

python3.6的demo

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function

import asyncio
import base64
import logging
import os
import shutil
import sys
from datetime import datetime

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


WATCH_PATH = '/home/lp/ftp'  # 监控目录

class FileMonitorHandler(FileSystemEventHandler):
  def __init__(self, **kwargs):
    super(FileMonitorHandler, self).__init__(**kwargs)
    # 监控目录 目录下面以device_id为目录存放各自的图片
    self._watch_path = WATCH_PATH



  # 重写文件改变函数,文件改变都会触发文件夹变化
  def on_modified(self, event):
    if not event.is_directory:  # 文件改变都会触发文件夹变化
      file_path = event.class="lazy" data-src_path
      print("文件改变: %s " % file_path)



if __name__ == "__main__":
  event_handler = FileMonitorHandler()
  observer = Observer()
  observer.schedule(event_handler, path=WATCH_PATH, recursive=True)  # recursive递归的
  observer.start()
  observer.join()

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python文件夹,文件监听工具(pyi

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

下载Word文档

猜你喜欢

python文件夹,文件监听工具(pyi

全栈工程师开发手册 (作者:栾鹏) 架构系列文章支持的监控事件@cvar IN_ACCESS: File was accessed.@type IN_ACCESS: int@cvar IN_MODIFY: File was modified
2023-01-31

oracle的监听文件在哪

oracle 监听文件位于 %oracle_home%\network\admin\listener.ora(windows)或 $oracle_home/network/admin/listener.ora(unix/linux)。要查找
oracle的监听文件在哪
2024-04-19

java怎么监听文件变化并读取文件

Java可以通过使用Java NIO包中的WatchService类来监听文件变化,并使用Java IO或Java NIO来读取文件。以下是一种基本的使用WatchService监听文件变化的方法:创建WatchService对象并注册要
2023-10-27

java如何监听文件变化并读取文件

Java中可以使用java.nio.file包中的WatchService类来监听文件的变化,并使用BufferedReader类来读取文件。下面是一个简单的示例代码:```javaimport java.io.BufferedReader
2023-09-26

Android创建文件实现对文件监听示例

代码如下:public class FileObserverTest extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.o
2022-06-06

jQuery如何监听文件上传事件?

jQuery监听文件上传事件jQuery提供了多种方法来监听文件上传事件,包括使用change事件处理程序、submit事件处理程序,以及FormData和XMLHttpRequest进行高级操作。处理程序可以执行各种逻辑,如显示进度条、验证文件、发送数据到服务器。本文介绍了如何监听文件上传事件,并提供了使用jQuery和XMLHttpRequest显示进度条的示例。
jQuery如何监听文件上传事件?
2024-04-08

oracle怎么监听配置文件

在Oracle数据库中,可以使用以下方法来监听和配置监听器文件:监听器配置文件监听器.ora:监听器配置文件通常位于ORACLE_HOME/network/admin目录下,文件名为listener.ora。可以使用文本编辑器打开该文件,并
oracle怎么监听配置文件
2024-04-09

python引入其他文件夹下的py文件具体方法

红色方框要引入箭头里面的import sys sys.path.append('../../config/') from database import * print(MYSQL_CONFIG)内容扩展: Python的import包含文
2022-06-02

python 文件夹拷贝

记录用python 处理文件以及文件夹的拷贝。#coding:utf-8import osimport sysimport getpassimport shutil# shutil.copyfile("oldfile","newfile")
2023-01-31

python如何拷贝文件到文件夹

你可以使用shutil模块中的`copy`或`copy2`函数来拷贝文件到文件夹。下面是一个例子:```pythonimport shutil# 拷贝文件到文件夹src_file = 'path/to/source/file.txt'dst
2023-09-27

Python打开文件夹

import osos.system("start explorer c:") #c:为要打开c盘,也可以改成其他路径
2023-01-31

python 移动文件或文件夹操作

目录:1、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法2、文件操作方法大全3、目录操作方法大全————————————————————————————–1、python中对文件、文件夹操作时经常用到的os模
2023-01-31

java怎么监听ftp新增文件

要在Java中监听FTP新增文件,可以使用Apache Commons Net库中的FTPClient类。以下是一个示例代码片段,演示如何监听FTP服务器上的新增文件。```javaimport org.apache.commons.net
2023-09-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录