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
omnomnomnom.那很棒.
但是,第一次运行我的应用程序时,我需要知道当前状态.我想假装有一个空状态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()
标签:diff,snapshot,watchdog,python,directory-structure 来源: https://codeday.me/bug/20191122/2061987.html