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 相关文章推荐
linux系统使用python监控apache服务器进程脚本分享
Jan 15 Python
python遍历文件夹并删除特定格式文件的示例
Mar 05 Python
Python检测QQ在线状态的方法
May 09 Python
详解Python中的Cookie模块使用
Jul 06 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
Python基本语法之运算符功能与用法详解
Oct 22 Python
python批量处理txt文件的实例代码
Jan 13 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
Python中X[:,0]和X[:,1]的用法
May 10 Python
python cv2图像质量压缩的算法示例
Jun 04 Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
PHP 日期时间函数的高级应用技巧
2009/10/10 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
js版本A*寻路算法
2006/12/22 Javascript
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
python脚本替换指定行实现步骤
2017/07/11 Python
widows下安装pycurl并利用pycurl请求https地址的方法
2018/10/15 Python
python滑块验证码的破解实现
2019/11/10 Python
python时间与Unix时间戳相互转换方法详解
2020/02/13 Python
python能做哪些生活有趣的事情
2020/09/09 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
Jack Rogers官网:美国经典的女性鞋靴品牌
2019/09/04 全球购物
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
公司领导推荐信
2013/11/12 职场文书
合作经营协议书范本
2014/04/17 职场文书
初中班主任评语
2014/04/24 职场文书
钱学森电影观后感
2015/06/04 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
长辈生日祝福语大全(72句)
2019/08/09 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS
Python中time标准库的使用教程
2022/04/13 Python
JS实现简单的九宫格抽奖
2022/06/28 Javascript