使用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中的字典遍历备忘
Jan 17 Python
Python数据类型详解(二)列表
May 08 Python
Python编程中对super函数的正确理解和用法解析
Jul 02 Python
详解如何使用Python编写vim插件
Nov 28 Python
Python从零开始创建区块链
Mar 06 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
Python 3 使用Pillow生成漂亮的分形树图片
Dec 24 Python
PyTorch的torch.cat用法
Jun 28 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
详解python with 上下文管理器
Sep 02 Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 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获取当前相对于域名目录的方法
2015/06/26 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
2017/11/18 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
layui实现checkbox的目录树tree的例子
2019/09/12 Javascript
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
Python运算符重载用法实例
2015/05/28 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python os.fork() 循环输出方法
2019/08/08 Python
浅谈matplotlib.pyplot与axes的关系
2020/03/06 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
Notino意大利:购买香水和化妆品
2018/11/14 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
运动会广播稿20字
2014/02/18 职场文书
读书活动总结范文
2014/04/26 职场文书
工会主席事迹材料
2014/06/03 职场文书
大跃进口号
2014/06/16 职场文书
委托书如何写
2014/08/30 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
世界气象日活动总结
2015/02/27 职场文书
小马王观后感
2015/06/11 职场文书
《社戏》教学反思
2016/02/22 职场文书
CSS预处理框架——Stylus
2021/04/21 HTML / CSS
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers