栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python里监控某个文件夹的变化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python里监控某个文件夹的变化

在centos里,编写python脚本,监控某个文件夹的变化

1、需求:添加了文件或者文件夹,或者是删除了某个文件或者文件夹,要将提示信息按找如下的要求写到一个特定的文件里,可以每隔一分钟监控一次,也可以每隔30秒监控一次:
如:2022-6-12 14:42 /root文件下新增了文件a.txt
2022-6-12 14:42/root文件夹下删除了b.txt

#导入os模块和time模块
import os
import time
#利用os模块的方法,用start记录最开始你要监控的文件夹里面有哪些文件
start = os.listdir("/lianxi/lhj")
while True:
    #如果一开始监控的文件夹和30秒以后的文件夹里面的内容不同了,就把30秒以后的文件夹记录到end中
    if start != os.listdir("/lianxi/lhj"):
        end = os.listdir("/lianxi/lhj")
        #如果start的长度小于end,则肯定是新增了文件夹
        if len(start)>/lianxi/text.txt")
                        fp.write(f"/lianxi/lhj文件下新增了文件{i}n")
                    #最开始start要加上新增的文件夹然后进行下一次的匹配
                    start.append(i)
        #如果start的长度大于end则是删除了文件或者文件夹,其他的东西和新增文件是一个道理
        if len(start)>len(end):
            for i in start:
                if i not in end:
                    with open("/lianxi/text.txt", "w+") as fp:
                        os.system("stat lhj|grep '最近更改'|awk -F':' '{print $2}'|awk -F'.' '{print $1}'  >>/lianxi/text.txt")
                        fp.write(f"/lianxi/lhj文件下删除了文件{i}n")
    #这里判断长度如果相等就是文件夹里面没有改变
    else:
        print("/lianxi/lhj没有改变")
    #每隔30秒进行一次监控
    time.sleep(30)

注:
这个脚本还不太完美,因为是用长度来衡量的,所以在30秒内新建一个文件,然后马上又删除另外一个文件,这里还是会显示没有改变,但其实已经改变了,后续改进的话,要在最后的长度判断里,加上一个判断,当长度相等的时候,看初始的start和最后的end内容是否相等,如果不相等在做处理,相等就是没有改变

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/969335.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号