每日一题 【每日一题】监控文件删除或新增状态 -Python-20210924

Jack · 2021年09月24日 · 最后由 lework 回复于 2022年01月10日 · 48 次阅读
本帖已被设为精华帖!

对目录下的文件进行增和删除的监控,如果有增和删打印出来,并打印文件名

Jack 将本帖设为了精华贴 09月24日 21:13

参考代码:

import os
import time
path_to_watch = "."
before = dict ([(f, None) for f in os.listdir (path_to_watch)])
while 1:
   time.sleep (10)
   after = dict ([(f, None) for f in os.listdir (path_to_watch)])
   added = [f for f in after if not f in before]
   removed = [f for f in before if not f in after]
   if added: print("Added: ", ", ".join (added))
   if removed: print("Removed: ", ", ".join (removed))
   before = after
package main

import (
    "fmt"
    "path/filepath"
    "time"
)

func IsContain(items []string, item string) bool {
    for _, eachItem := range items {
        if eachItem == item {
            return true
        }
    }
    return false
}

func main() {
    /*
    监控文件删除或新增状态
    对目录下的文件进行增和删除的监控,如果有增和删打印出来,并打印文件名
    */

    dirPath := "./*"
    beforeFiles, _ := filepath.Glob(dirPath)
    for {
        time.Sleep(time.Second * 10)
        afterFiles, _ := filepath.Glob(dirPath)
        var addFiles []string

        for _, val := range afterFiles {
            if !IsContain(beforeFiles, val) {
                addFiles = append(addFiles, val)
            }
        }

        var delFiles []string
        for _, val := range beforeFiles {
            if !IsContain(afterFiles, val) {
                delFiles = append(delFiles, val)
            }
        }
        fmt.Println("Added: ", addFiles)
        fmt.Println("Removed: ", delFiles)
        beforeFiles = afterFiles
    }
}
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册