使用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中使用判断语句和循环的教程
Apr 25 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
浅谈python标准库--functools.partial
Mar 13 Python
python命令 -u参数用法解析
Oct 24 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Django设置Postgresql的操作
May 14 Python
如何利用python web框架做文件流下载的实现示例
Jun 02 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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
javascript下function声明一些小结
2007/12/28 Javascript
js调用activeX获取u盘序列号的代码
2011/11/21 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
js实现数组转换成json
2015/06/26 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
详解ECMAScript typeof用法
2018/07/25 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
JavaScript运动原理基础知识详解
2020/04/02 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
Python中的模块和包概念介绍
2015/04/13 Python
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
Python编程之gui程序实现简单文件浏览器代码
2017/12/08 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python实现微信每日一句自动发送给喜欢的人
2019/04/29 Python
python3字符串操作总结
2019/07/24 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python字典底层实现原理详解
2019/12/18 Python
python使用正则表达式(Regular Expression)方法超详细
2019/12/30 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
Python在字符串中处理html和xml的方法
2020/07/31 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
html5的canvas方法使用指南
2014/12/15 HTML / CSS
某公司.Net方向面试题
2014/04/24 面试题
数控技术专科生自我评价
2014/01/08 职场文书
初一生物教学反思
2014/01/18 职场文书
收银员的岗位职责范本
2014/02/04 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
会计学习心得体会
2014/09/09 职场文书