使用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 23 Python
python添加模块搜索路径和包的导入方法
Jan 19 Python
python实现手机销售管理系统
Mar 19 Python
python文件写入write()的操作
May 14 Python
用python画一只可爱的皮卡丘实例
Nov 21 Python
python保留小数位的三种实现方法
Jan 07 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
python logging.info在终端没输出的解决
May 12 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
Sep 01 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
python regex库实例用法总结
Jan 03 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
消息持续发送的完整例子
2006/10/09 PHP
PHP 引用文件技巧
2010/03/02 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
PHP之预定义接口详解
2015/07/29 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
thinkPHP框架实现多表查询的方法
2018/06/14 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
jquery中实现标签切换效果的代码
2011/03/01 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
解决node.js安装包失败的几种方法
2016/09/02 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
2017/08/21 Javascript
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
JavaScript实现省份城市的三级联动
2020/02/11 Javascript
Python编写简单的HTML页面合并脚本
2016/07/11 Python
对pandas中apply函数的用法详解
2018/04/10 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
详解python对象之间的交互
2020/09/29 Python
python中二分查找法的实现方法
2020/12/06 Python
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
教师自我鉴定范文
2013/11/10 职场文书
工程采购员岗位职责
2014/03/09 职场文书
益达广告词
2014/03/14 职场文书
领导干部廉政自律承诺书
2014/05/26 职场文书
土建专业毕业生自荐书
2014/07/04 职场文书
四风批评与自我批评发言稿
2014/10/14 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
部门主管竞聘书
2015/09/15 职场文书
保险公司增员口号
2015/12/25 职场文书