停止使用看门狗监视文件

时间:2016-04-30 14:52:46

标签: python python-2.7 monitoring python-watchdog

我有这个小脚本用监视器监视单个文件(test.txt)。 直到现在我每次修改文件时都会收到一条屏幕消息,但我只需要第一次获取通知,这意味着停止监控,有什么方法可以告诉看门狗阻止它吗?

这是我的代码:

//The real method to do clone
function doClone(source, keys, values, result) {
    if (source == null || typeof (source) !== "object") {
        return source;
    }
    if (source.Clone instanceof Function) {
        return source.Clone();
    }
    if (source instanceof Date) {
        if (!(result instanceof Date)) {
            result = new Date();
        }
        result.setTime(source.getTime());
        return result;
    }
    else if (source instanceof Array) {
        if (!(result instanceof Array)) {
            result = [];
        }
        for (var i = 0; i < source.length; i++) {
            result[i] = clone(source[i], keys, values, result[i]);
        }
        return result;
    }
    try {
        if (typeof result !== "object" || result == null) {
            result = new source.constructor();
        } else {
            result.constructor = source.constructor;
        }
        if (source.prototype) {
            result.prototype = source.prototype;
        }
        if (source.__proto__) {
            result.__proto__ = source.__proto__;
        }
    } catch (e) {
        if (Object.create) {
            result = Object.create(source.constructor.prototype);
        } else {
            result = {};
        }
    }
    if (result != null) {
        // ReSharper disable once MissingHasOwnPropertyInForeach
        for (var property in source) {
            if (source.hasOwnProperty(property)) {
                try {
                    var descriptor = Object.getOwnPropertyDescriptor(source, property);
                    if (descriptor != null) {
                        if (descriptor.get || descriptor.set) {
                            Object.defineProperty(result, property, descriptor);
                        } else {
                            descriptor.value = clone(descriptor.value, keys, values, result[property]);
                            Object.defineProperty(result, property, descriptor);
                        }
                    } else {
                        result[property] = clone(source[property], keys, values, result[property]);
                    }
                } catch (e) {
                    result[property] = clone(source[property], keys, values, result[property]);
                }
            }
        }
    }
    return result;
}

//The portal of clone method
function clone(source, keys, values, result) {
    var index = keys.indexOf(source);
    if (index !== -1) {
        return values[index];
    }
    result = doClone(source, keys, values, result);
    index = keys.indexOf(source);
    if (index !== -1) {
        values[index] = result;
    } else {
        keys.push(source);
        values.push(result);
    }
    return result;
}

/**
 * Core functions
 */
var X = {
    /**
     * Clone indicated source instance
     * @param {} source The source instance to be clone
     * @param {} target If indicated, copy source instance to target instance.
     * @returns {} 
     */
    Clone: function (source, target) {
        return clone(source, [], [], target);
    }
}

0 个答案:

没有答案