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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
解析Python中的变量、引用、拷贝和作用域的问题
Apr 07 Python
Python中的模块和包概念介绍
Apr 13 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
numpy.random.seed()的使用实例解析
Feb 03 Python
使用实现XlsxWriter创建Excel文件并编辑
May 04 Python
关于python多重赋值的小问题
Apr 17 Python
python实现支付宝转账接口
May 07 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
python解决12306登录验证码的实现
Apr 18 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
Phpbean路由转发的php代码
2008/01/10 PHP
基于empty函数的判断详解
2013/06/17 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
CodeIgniter中实现泛域名解析
2014/07/19 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
PHP巧妙利用位运算实现网站权限管理的方法
2017/03/12 PHP
PHP设计模式之注册树模式分析
2018/01/26 PHP
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
Js经典案例的实例代码
2018/05/10 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python导入txt数据到mysql的方法
2015/04/08 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
Python面向对象程序设计之私有属性及私有方法示例
2019/04/08 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
pytorch实现onehot编码转为普通label标签
2020/01/02 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
火锅店创业计划书范文
2014/02/02 职场文书
理财投资建议书
2014/03/12 职场文书
环保口号大全
2014/06/12 职场文书
北京奥运会口号
2014/06/21 职场文书
死亡赔偿协议书
2015/01/28 职场文书
走进科学观后感
2015/06/18 职场文书
文艺委员竞选稿
2015/11/19 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python