Pyinotify/Watchdog在一个edi上触发修改事件两次

2024-05-16 22:06:17 发布

您现在位置:Python中文网/ 问答频道 /正文

每次修改某个文件时,我都尝试启动一个python脚本。准确地说,我在Raspberry Pi的串行端口上有一个设备,可以将数据写入文本文件(测试.txt)。我试过这两种工具-看门狗/Pyinotify。每次修改文件(触发器事件监视器:on_modified/Pyinotify:IN_MODIFY),它都会生成重复触发器。我尝试过其他的方法,甚至一些人建议的IN_CLOSE_WRITE,但这根本不起作用。 有人知道,一次文件更新怎么可能只触发一个事件?在

我的代码使用Pyinotify(有点编辑的教程文件):

import pyinotify,subprocess
def onChange(ev):
    cmd = ['/usr/bin/env', 'python', 'doThisFile.py', ev.pathname]
    subprocess.Popen(cmd).communicate()
wm = pyinotify.WatchManager()
wm.add_watch('/home/pi/test.txt', pyinotify.IN_MODIFY, onChange)
notifier = pyinotify.Notifier(wm)
notifier.loop()

或看门狗:

^{pr2}$

Tags: 文件intxtcmd事件看门狗notifiersubprocess