在日常的工作中,有時候會有這樣的需求,需要乙個常駐任務,持續的監聽乙個目錄下檔案的變化,對此作出回應.
pyinotify就是這樣的乙個python包,使用方式如下:
一旦src.txt有新的內容,程式就可以監控到,然後將內容傳送
importsocket
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:
(str(e))
class
myeventhandler(pyinotify.processevent):
#當檔案被修改時呼叫函式
defprocess_in_modify(self, event):
try:
printlog()
except
exception as e:
(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 重新命名為...