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 相关文章推荐
python使用reportlab画图示例(含中文汉字)
Dec 03 Python
python实现周期方波信号频谱图
Jul 21 Python
python使用scrapy发送post请求的坑
Sep 04 Python
Python使用random.shuffle()打乱列表顺序的方法
Nov 08 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
Python编写合并字典并实现敏感目录的小脚本
Feb 26 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python实现图像拼接功能
Mar 23 Python
Python工程师必考的6个经典面试题
Jun 28 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
python开发入门——列表生成式
Sep 03 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 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视频拍照上传头像功能实现代码分享
2015/10/08 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
jquery实现的一个导航滚动效果具体代码
2013/05/27 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
js鼠标悬浮出现遮罩层的方法
2015/01/28 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
基于vue手写tree插件的那点事儿
2019/08/20 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
Python global全局变量函数详解
2018/09/18 Python
python判断all函数输出结果是否为true的方法
2020/12/03 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
小学毕业感言50字
2014/02/16 职场文书
逃课上网检讨书
2014/02/20 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
校园标语大全
2014/06/19 职场文书
一份文言文检讨书
2014/09/13 职场文书
计划生育汇报材料
2014/12/26 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书