创建文件夹或文件时运行脚本

时间:2014-03-02 13:05:38

标签: python perl

我有一个perl脚本,可以将文件从一个传入目录排序到Ubuntu服务器上的其他目录中。 现在,我每隔几分钟就将它作为一个cron作业运行,但如果脚本在文件被写入传入目录时启动,则会出现问题。

更好的解决方案是在将文件写入传入目录或任何子目录时启动它。

我想我可以运行另一个脚本作为服务,只要发生目录更改就会调用我的排序脚本,但是我不知道如何去做。

1 个答案:

答案 0 :(得分:2)

在Linux上,您可以使用pyinotify库:https://github.com/seb-m/pyinotify

要观看子目录,请在add_watch()调用中使用rec = True。完整的示例监控/ tmp目录及其文件创建子目录:

import pyinotify

class EventHandler(pyinotify.ProcessEvent):
    def process_IN_CREATE(self, event):
        # Processing of created file goes here.
        print "Created:", event.pathname

wm = pyinotify.WatchManager()

notifier = pyinotify.Notifier(wm, EventHandler())
wm.add_watch('/tmp', pyinotify.IN_CREATE, rec=True)
notifier.loop()