使用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 del()函数用法
Mar 24 Python
python计算N天之后日期的方法
Mar 31 Python
用Python编写web API的教程
Apr 30 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
人生苦短我用python python如何快速入门?
Mar 12 Python
浅谈python下tiff图像的读取和保存方法
Dec 04 Python
Python多线程处理实例详解【单进程/多进程】
Jan 30 Python
python tkinter基本属性详解
Sep 16 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
python高温预警数据获取实例
Jul 23 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/06 日漫
PHP 如何利用phpexcel导入数据库
2013/08/24 PHP
iOS10推送通知开发教程
2016/09/19 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
JS图片放大效果简单实现代码
2016/09/08 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
前端面试知识点目录一览
2019/04/15 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
vue + node如何通过一个Txt文件批量生成MP3并压缩成Zip
2020/06/02 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
Python探索之Metaclass初步了解
2017/10/28 Python
Python用 KNN 进行验证码识别的实现方法
2018/02/06 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python3 pygame实现接小球游戏
2019/05/14 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
在python plt图表中文字大小调节的方法
2019/07/08 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
Django 解决新建表删除后无法重新创建等问题
2020/05/21 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
美国猫狗药物和用品网站:PetCareRx
2017/01/05 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
DTD的含义以及作用
2014/01/26 面试题
计算机毕业大学生推荐信
2013/12/01 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
2014年学习部工作总结
2014/11/12 职场文书
员工考勤管理制度
2015/08/06 职场文书
python 闭包函数详细介绍
2022/04/19 Python