使用Python监视指定目录下文件变更的方法


Posted in Python onOctober 15, 2018

监视指定目录下文件变更。

# -*- coding: utf-8 -*-
# @Author: xiaodong
# @Date: just hide
# @Last Modified by: xiaodong
# @Last Modified time: just hide
import os
import glob
import json
import datetime

from typing import Iterable

"""
监视指定目录下文件变更
"""

def penetrate(root: os.path) -> Iterable:
 for ele in glob.glob(os.path.join(root, '*')):
 if os.path.isdir(ele):
  yield ele
  yield from penetrate(os.path.abspath(ele))
 else:
  yield ele


def update(s: set, exists: bool=False, mode: str='w') -> None or dict :
 with open('file_records.json', encoding='utf-8', mode=mode) as file:
 if not exists:
  json.dump({'datetime': str(datetime.datetime.now()),
   'files': list(s)}, file, ensure_ascii=False, indent=10)
 else:
  return json.load(file)


def main(s: set=set(), root: os.path='.')-> None:
 for path in penetrate(root):
 s.add(path)

 if not os.path.exists('file_records.json'):
 update(s)
 else:
 d = update(None, True, 'r')
 files = s - set(d['files'])
 files2 = set(d['files']) - s
 if files:
  print('增加文件: ', files)
 if files2:
  print('删除文件: ', files2)
 if files or files2:
  update(s)
  print('更新成功!')


if __name__ == "__main__":
 main()

以上这篇使用Python监视指定目录下文件变更的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 变量类型及命名规则介绍
Jun 08 Python
Python实现抓取网页并且解析的实例
Sep 20 Python
Django查询数据库的性能优化示例代码
Sep 24 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
Python中str.join()简单用法示例
Mar 20 Python
python使用pipeline批量读写redis的方法
Feb 18 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
Python matplotlib画曲线例题解析
Feb 07 Python
python 实现字符串下标的输出功能
Feb 13 Python
python 爬虫网页登陆的简单实现
Nov 30 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
Django中ORM的基本使用教程
Dec 22 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
Oct 15 #Python
彻彻底底地理解Python中的编码问题
Oct 15 #Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 #Python
解决python3 安装完Pycurl在import pycurl时报错的问题
Oct 15 #Python
Python安装pycurl失败的解决方法
Oct 15 #Python
django框架之cookie/session的使用示例(小结)
Oct 15 #Python
Python访问MongoDB,并且转换成Dataframe的方法
Oct 15 #Python
You might like
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php二维码生成以及下载实现
2017/09/28 PHP
用jquery等比例控制图片宽高的具体实现
2014/01/28 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
javascript模拟php函数in_array
2015/04/27 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
很棒的一组js图片轮播特效
2017/01/12 Javascript
你可能不知道的前端算法之文字避让(inMap)
2018/01/12 Javascript
详解nuxt路由鉴权(express模板)
2018/11/21 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
Python列表(list)、字典(dict)、字符串(string)基本操作小结
2014/11/28 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
深入浅析pycharm中 Make available to all projects的含义
2020/09/15 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
市场开发与营销专业求职信
2013/12/31 职场文书
完美的中文自荐信
2014/05/24 职场文书
职代会闭幕词
2015/01/28 职场文书
老龙头导游词
2015/02/11 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
校园广播站开场白
2015/06/01 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
前端canvas中物体边框和控制点的实现示例
2022/08/05 Javascript