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