Python持续监听文件变化代码实例
作者:Mars.wang 发布时间:2021-10-20 06:19:19
标签:python,监听,文件
在日常的工作中,有时候会有这样的需求,需要一个常驻任务,持续的监听一个目录下文件的变化,对此作出回应.
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


猜你喜欢
- 先判断是jquery对象还是html对象, 如果是jquery对象, 可以直接用 jquery对象.attr("
- 今天发现有一个程序插入的时间不对,而该字段是配置的默认值 CURRENT_TIMESTAMP,初步判断是数据库的时区设置问题。查看时区登录数
- 如下表:AggregationTableIdName1赵2钱1孙1李2周如果想得到下图的聚合结果IdName1赵孙李2钱周利用SUM、AVG
- 本文实例讲述了Python网络编程使用select实现socket全双工异步通信功能。分享给大家供大家参考,具体如下:在前面一篇《Pytho
- 本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052一、强大的 hub
- 概要在前面章节我们为主页定义了一个简单的模板,部分尚未实现的模块如用户或帖子等使用模拟的对象作为临时占位。本章我们将看到如何利用
- MAC 中mysql密码忘记解决办法最近项目用到MySQL,之前装过一个,可是忘记了当时设置的密码,然后走上了修改密码的坎坷道路。在百度,G
- 文件的介绍什么是文件?如图展示:使用文件的目的:保存数据存放在磁盘,把一些存储存放起来,可以让程序下一次执行的时候直接使用,而不必重新制作一
- 先解释一下这篇Blog延期的原因,本来已经准备好了全部内容,但是当我重新回顾实例三的时候,发现自己还是存在认知不足的地方,于是为了准确表述,
- 在许多情况下,对外键使用更复杂的逻辑表达式是非常有用的。 此外,在某些情况下能够在索引视图创建约束也将非常实用。 我将举例说明,同时我希望针
- IE8主页http://www.microsoft.com/windows/products/winfamily/ie/ie8/defaul
- 使用EXECL转换时间戳的公式为:代码:=(xxxxxxxxxx+8*3600)/86400+70*365+19使用MYSQL语句解释时间戳
- MySQL数据库配置技巧用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQ
- 目的:了解常用的ORM框架;使用SQLObject框架操作MySQL数据库。面试题:在Python语言中有哪些常用的ORM框架,它们有什么区
- 目的:把question_id 对应的user_answer转成ABCDsolutiondfa=df.groupby('questi
- 模式库 在模式库里,我将列出所有电子商务网站需要的模式.以下将罗列出经典常用的模式案例,我也试图让这些模式看起来更有趣味性与实用性。(Yah
- 基本思想:归并排序是一种典型的分治思想,把一个无序列表一分为二,对每个子序列再一分为二,继续下去,直到无法再进行划分为止。然后,就开始合并的
- 直接上代码:<?php$array_values['host'] = "host";$array_
- 数据库:保存图片的数据格式 图象二进制数据储存字段前台: <%@ Page Language="C#" AutoE
- Insert 和 Update假设现在你要把下面的数据插入到数据库中.ID = 3TheDate=mktime(0,0,0,8,31,200