使用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中Django框架利用url来控制登录的方法
Jul 25 Python
python运行其他程序的实现方法
Jul 14 Python
Flask 让jsonify返回的json串支持中文显示的方法
Mar 26 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
Jan 30 Python
使用Python实现跳一跳自动跳跃功能
Jul 10 Python
简单了解python PEP的一些知识
Jul 13 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
python实现udp聊天窗口
Mar 31 Python
jupyter notebook 参数传递给shell命令行实例
Apr 10 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
python 图像插值 最近邻、双线性、双三次实例
Jul 05 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
星际玩家的三大定律
2020/03/04 星际争霸
PHP+javascript液晶时钟
2006/10/09 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
jQuery实现的立体文字渐变效果
2010/05/17 Javascript
用js实现的模拟jquery的animate自定义动画(2.5K)
2010/07/20 Javascript
模拟select的代码
2011/10/19 Javascript
本地图片预览(支持IE6/IE7/IE8/Firefox3)经验总结
2013/03/25 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
vue2.0获取自定义属性的值
2017/03/28 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
详解如何运行vue项目
2019/04/15 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
Python实现在线音乐播放器
2017/03/03 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
Python字典遍历操作实例小结
2019/03/05 Python
python如何绘制疫情图
2020/09/16 Python
python 字符串格式化的示例
2020/09/21 Python
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
如何用Java判断一个文件或目录是否存在
2012/11/19 面试题
区域销售经理岗位职责
2013/12/10 职场文书
四议两公开实施方案
2014/03/28 职场文书
总经理人事任命书
2014/06/05 职场文书
公司活动总结怎么写
2014/06/25 职场文书
面试自我评价范文
2014/09/17 职场文书
岳麓书院导游词
2015/02/03 职场文书
英语演讲开场白
2015/05/29 职场文书
小学语文教学反思范文
2016/03/03 职场文书