Watchdog-监视目录以创建新文件,但如果具有相同文件名的文件已经存在,则忽略该目录



我正在为文件夹中的每个新文件运行程序。在尝试使用Watchdog实现监控时,我偶然发现了以下问题
我的程序对文件夹中的每个新文件做什么?它会更改它(其中的一些参数(,这意味着它会创建一个具有相同文件名的新文件。当我的目录中有一个新文件时,我希望看门狗能检测到,然后运行我的程序,创建一个具有相同文件名的新文件(这就是我的程序所做的(,但最重要的是,我不希望它在同一个文件上再次运行我的程序。有可能做到吗?

这是我已经尝试过的MWE。

from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from watchdog.events import FileCreatedEvent
from watchdog.events import PatternMatchingEventHandler  
class MyMonitorFolder(PatternMatchingEventHandler):
patterns = ["*.fits"]

def process(self, event):
src_path = "A/B/"
myProgram(src_path)

def on_created(self, event):
print (str(datetime.now()) + " " + str(event))
self.process(event)

if __name__ == "__main__":
event_handler = MyMonitorFolder()
observer = Observer()
observer.schedule(event_handler, path=src_path, recursive=False)
print("Monitoring started")
observer.start()

try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()

您是否尝试将其他on_x方法添加到MyMonitorFolder类中?

class MyMonitorFolder(PatternMatchingEventHandler):
patterns = ["*.fits"]

def process(self, event):
src_path = "A/B/"
myProgram(src_path)

def on_created(self, event):
print (str(datetime.now()) + " " + str(event))
self.process(event)
def on_modified(self, event):
pass
def on_moved(self, event):
pass
def on_deleted(self, event):
pass

我在窗户上用看门狗,这些似乎起作用了。你的os是什么?

相关内容

  • 没有找到相关文章