python常駐任務持續監聽乙個檔案變化

2022-06-12 09:27:10 字數 1546 閱讀 8240

在日常的工作中,有時候會有這樣的需求,需要乙個常駐任務,持續的監聽乙個目錄下檔案的變化,對此作出回應.

pyinotify就是這樣的乙個python包,使用方式如下:

一旦src.txt有新的內容,程式就可以監控到,然後將內容傳送

import

socket

import

pyinotify

pos =0

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

defprintlog():

global

pos

try:

fd = open("

src.txt")

if pos !=0:

fd.seek(pos, 0)

while

true:

line =fd.readline()

ifline.strip():

send(line.strip().encode(

'utf8'))

pos = pos +len(line)

ifnot

line.strip():

break

fd.close()

except

exception as e:

print

(str(e))

class

myeventhandler(pyinotify.processevent):

#當檔案被修改時呼叫函式

defprocess_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 指令碼,然後更改檔案觸發檔名。如下 import sys import os import time start ready while true if os.path.exi...

Python基礎任務一

1.任務摘要 環境搭建 a anaconda環境配置 b 直譯器 python初體驗 a print and input python基礎講解 a python變數特性 命名規則 b 注釋方法 c python中 作用 d 學會使用dir 及和help e import使用 f pep8介紹 pyt...

python 多工 執行緒(一)

python提供了兩個模組來實現多執行緒thread和threading 推薦 thread模組提供了基本的執行緒和鎖支援,threading提供的是更高階的完全的執行緒管理,且更方便操作。在 python3 中不能再使用 thread 模組。為了相容性,python3 將 thread 重新命名為...