Python持续监听文件变化代码实例


Posted in Python onJuly 22, 2020

在日常的工作中,有时候会有这样的需求,需要一个常驻任务,持续的监听一个目录下文件的变化,对此作出回应.

pyinotify就是这样的一个python包,使用方式如下:

一旦src.txt有新的内容,程序就可以监控到,然后将内容发送

import socket
import pyinotify
pos = 0


def send(c):
  c_list = [c]
  s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  s.connect(('127.0.0.1', 10001))
  print(s.recv(1024).decode('utf-8'))
  for data in c_list:
    s.send(data)
    print(s.recv(1024).decode('utf-8'))
  s.send(b'exit')
  s.close()


def printlog():
  global pos
  try:
    fd = open("src.txt")
    if pos != 0:
      fd.seek(pos, 0)
    while True:
      line = fd.readline()
      if line.strip():
        send(line.strip().encode('utf8'))
      pos = pos + len(line)
      if not line.strip():
        break
    fd.close()
  except Exception as e:
    print(str(e))


class MyEventHandler(pyinotify.ProcessEvent):

  # 当文件被修改时调用函数
  def process_IN_MODIFY(self, event):
    try:
      printlog()
    except Exception as e:
      print(str(e))
if __name__ == '__main__':
  printlog()
  # watch manager
  wm = pyinotify.WatchManager()
  wm.add_watch('/home/ubuntu/data-sync/s3', pyinotify.ALL_EVENTS, rec=True)
  eh = MyEventHandler()

  # notifier
  notifier = pyinotify.Notifier(wm, eh)
  notifier.loop()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用python3实现操作串口详解
Jan 01 Python
Django框架封装外部函数示例
May 28 Python
python print出共轭复数的方法详解
Jun 25 Python
基于python操作ES实例详解
Nov 16 Python
如何基于python测量代码运行时间
Dec 25 Python
NumPy统计函数的实现方法
Jan 21 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
python numpy库linspace相同间隔采样的实现
Feb 25 Python
使用python实现飞机大战游戏
Mar 23 Python
python 绘制场景热力图的示例
Sep 23 Python
用python获取txt文件中关键字的数量
Dec 24 Python
Python不支持 i ++ 语法的原因解析
Jul 22 #Python
基于selenium及python实现下拉选项定位select
Jul 22 #Python
Python实现手绘图效果实例分享
Jul 22 #Python
Selenium及python实现滚动操作多种方法
Jul 21 #Python
如何在mac版pycharm选择python版本
Jul 21 #Python
python如何变换环境
Jul 21 #Python
零基础学Python之前需要学c语言吗
Jul 21 #Python
You might like
用php的ob_start来生成静态页面的方法分析
2011/03/09 PHP
PHP学习笔记之数组篇
2011/06/28 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php session的锁和并发
2016/01/22 PHP
Mac系统完美安装PHP7详细教程
2017/06/06 PHP
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
jQuery Validate初步体验(一)
2015/12/12 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
在create-react-app中使用css modules的示例代码
2018/07/31 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
React Hooks 实现和由来以及解决的问题详解
2020/01/17 Javascript
Python实现二叉堆
2016/02/03 Python
Python英文文本分词(无空格)模块wordninja的使用实例
2019/02/20 Python
python字典一键多值实例代码分享
2019/06/14 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
python实现udp传输图片功能
2020/03/20 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
如何在python中实现线性回归
2020/08/10 Python
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
北美个性化礼品商店:Things Remembered
2018/06/12 全球购物
Unix里面如何在后台运行程序
2016/10/14 面试题
档案检查欢迎词
2014/01/13 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
男性健康日的活动方案
2014/08/18 职场文书
小学优秀教师材料
2014/12/15 职场文书
租赁协议书
2015/01/27 职场文书
2016教师节问候语
2015/11/10 职场文书
2016年八一建军节活动总结
2016/04/05 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python