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

作者:Mars.wang 时间:2021-10-20 06:19:19 

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

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()

来源:https://www.cnblogs.com/wangbin2188/p/13334472.html

标签:python,监听,文件
0
投稿

猜你喜欢

  • 使用Python实现汉诺塔问题示例

    2022-10-22 09:17:47
  • python实现的一个火车票转让信息采集器

    2023-09-05 11:42:53
  • python中的argparse基本用法(使用步骤)

    2023-06-12 20:01:36
  • python使用jenkins发送企业微信通知的实现

    2022-06-06 19:40:16
  • php+mysqli数据库连接的两种方式

    2023-10-08 22:15:16
  • Python采集情感音频的实现示例

    2023-06-11 23:17:10
  • Python黑魔法之metaclass详情

    2022-09-16 00:38:56
  • Python办公自动化之Excel介绍

    2021-04-19 11:06:07
  • 浅论网站用户粘性的提高和增强

    2008-05-15 07:14:00
  • python队列通信:rabbitMQ的使用(实例讲解)

    2021-01-11 05:04:55
  • python绘制字符画视频的示例代码

    2023-11-09 16:21:46
  • Python函数默认参数设置的具体方法

    2021-03-13 08:19:07
  • ASP读取MySQL数据库出现乱码的解决办法

    2010-03-08 14:25:00
  • Python中关于列表的常规操作范例以及介绍

    2023-02-20 12:44:44
  • python生成13位或16位时间戳以及反向解析时间戳的实例

    2021-02-18 17:16:35
  • Django实现视频播放的具体示例

    2022-11-04 22:26:35
  • Python(TensorFlow框架)实现手写数字识别系统的方法

    2022-09-01 23:42:10
  • php+ajax+h5实现图片上传功能

    2024-05-22 10:05:39
  • 用selenium解决滑块验证码的实现步骤

    2021-06-02 01:44:39
  • Python3+Requests+Excel完整接口自动化测试框架的实现

    2022-12-12 00:19:52
  • asp之家 网络编程 m.aspxhome.com