使用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兔子毒药问题实例分析
Mar 05 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 Python
Python中Django发送带图片和附件的邮件
Mar 31 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
Nov 29 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
Django3.0 异步通信初体验(小结)
Dec 04 Python
TensorFlow实现自定义Op方式
Feb 04 Python
Python 如何创建一个线程池
Jul 28 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 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
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
得到文本框选中的文字,动态插入文字的js代码
2007/03/07 Javascript
jquery动画4.升级版遮罩效果的图片走廊--带自动运行效果
2012/08/24 Javascript
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
微信小程序实现传递多个参数与事件处理
2019/08/12 Javascript
原生JS实现京东查看商品点击放大
2020/12/21 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
python动态加载变量示例分享
2014/02/17 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
2015/08/07 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
pytorch 获取tensor维度信息示例
2020/01/03 Python
python实现在线翻译功能
2020/03/03 Python
jupyter notebook插入本地图片的实现
2020/04/13 Python
彻底解决Python包下载慢问题
2020/11/15 Python
简历的个人自我评价范文
2014/01/03 职场文书
酒店经理职责
2014/01/30 职场文书
运动会跳远加油稿
2014/02/20 职场文书
食品安全责任书
2014/04/15 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
董事长年会致辞
2015/07/29 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript