Python看门狗:什么是“空”目录快照?

看门狗非常棒,它允许您获取特定目录的递归快照.它甚至允许您使用称为DirectorySnapshotDiff的功能比较快照.

我的程序监视目录的实时变化,因此已经消耗了此函数的输出.这是非常合理的.

假设我在任意时间拍摄文件系统的快照s1,s2….我们将最后一个快照与最新快照进行比较,以创建差异对象.

        d1    d2           # detected differences (my app eats these up)
     s1 -> s2 -> s3        # evolving states (snapshots taken) of the file system.

t=0 -------------------> time

omn​​omnomnom.那很棒.

但是,第一次运行我的应用程序时,我需要知道当前状态.我想假装有一个空状态s0,它转换为s1;因此我可以比较格式.即

     d0                # I want to create this 'bootstrapping' difference set
(s0) -> s1             # Assume s0 is the empty snapshot: it reports everything is an addition

我怎么做?

其背后的动机是:我喜欢函数式编程.我不想写代码来消耗快照和快照差异(两者都是可观的工作),而是希望保持较高的重用性和最少的代码.

解决方法:

对于python> = 2.6版本,看门狗使用它的OrderedSet.

修改fatuhoku的路径功能,如下所示;

@property
def paths(self):
    if sys.version_info >= (2, 6, 0):
        return watchdog.utils.bricks.OrderedSet()
    return set()
上一篇:softlockup/hardlockup原理详细介绍


下一篇:Windows文件系统的Watchdog Python脚本