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实现竖排打印传单手机号码易撕条
Mar 16 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
Python学习pygal绘制线图代码分享
Dec 09 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
Jan 04 Python
python 产生token及token验证的方法
Dec 26 Python
对pandas处理json数据的方法详解
Feb 08 Python
PyQt5固定窗口大小的方法
Jun 18 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
使用python对excel表格处理的一些小功能
Jan 25 Python
一篇文章带你搞懂Python类的相关知识
May 20 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/04/28 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
web前端开发也需要日志
2010/12/09 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
js QQ客服悬浮效果实现代码
2014/12/12 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
jQuery实现不断闪烁文字的方法
2015/05/15 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
详解探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用
2017/06/16 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
2019/05/17 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
vue 数据操作相关总结
2020/12/17 Vue.js
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
Python正则捕获操作示例
2017/08/19 Python
Python上下文管理器和with块详解
2017/09/09 Python
python实现月食效果实例代码
2019/06/18 Python
选择Python写网络爬虫的优势和理由
2019/07/07 Python
关于python 跨域处理方式详解
2020/03/28 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
python实现扫雷游戏的示例
2020/10/20 Python
python selenium 获取接口数据的实现
2020/12/07 Python
DKNY品牌官网:纽约大都会时尚风格
2016/10/20 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
全球500多个机场的接送服务:Suntransfers
2019/06/03 全球购物
软件测试面试题
2015/10/21 面试题
应届大学生求职信
2013/12/01 职场文书
工艺工程师岗位职责
2014/03/04 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
实现GO语言对数组切片去重
2022/04/20 Golang