使用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条件和循环的使用方法
Nov 01 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
对Python的交互模式和直接运行.py文件的区别详解
Jun 29 Python
浅析Python 引号、注释、字符串
Jul 25 Python
django+echart数据动态显示的例子
Aug 12 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
matlab、python中矩阵的互相导入导出方式
Jun 01 Python
浅谈python锁与死锁问题
Aug 14 Python
Pycharm在指定目录下生成文件和删除文件的实现
Dec 28 Python
python爬虫破解字体加密案例详解
Mar 02 Python
详解用Python把PDF转为Word方法总结
Apr 27 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
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
使用PHP如何实现高效安全的ftp服务器(一)
2015/12/20 PHP
PHP精确计算功能示例
2016/11/29 PHP
PHP实现APP微信支付的实例讲解
2018/02/10 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
2020/02/10 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
基于jQuery实现的Ajax 验证用户名是否存在的实现代码
2011/04/06 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JS定时器实例
2013/04/17 Javascript
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
jquery.pagination.js分页使用教程
2018/10/23 jQuery
vue单页应用的内存泄露定位和修复问题小结
2019/08/02 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python绘制中国大陆人口热力图
2018/11/07 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Html5之自定义属性(data-,dataset)
2019/11/19 HTML / CSS
REISS英国官网:伦敦High Street最受欢迎品牌
2016/12/21 全球购物
长青弘远的面试题
2012/06/09 面试题
大学生的应聘自我评价
2013/12/13 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
房屋出租委托书格式
2014/09/23 职场文书
教师党员个人自我评价
2015/03/04 职场文书
保姆聘用合同
2015/09/21 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
Python字典的基础操作
2021/11/01 Python