使用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的SQLalchemy模块连接与操作MySQL的基础示例
Jul 11 Python
Python学习笔记之if语句的使用示例
Oct 23 Python
使用Python写一个小游戏
Apr 02 Python
用Python3创建httpServer的简单方法
Jun 04 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
Python不支持 i ++ 语法的原因解析
Jul 22 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
python爬取新闻门户网站的示例
Apr 25 Python
如何在Python中妥善使用进度条详解
Apr 05 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下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php array_values 返回数组的所有值详解及实例
2016/11/12 PHP
thinkphp5框架路由原理与用法详解
2020/02/11 PHP
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
jQuery1.6 使用方法二
2011/11/23 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
详解JavaScript树结构
2017/01/09 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
解决Python的str强转int时遇到的问题
2018/04/09 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Django URL参数Template反向解析
2020/11/24 Python
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
给女朋友的道歉信
2014/01/10 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
《猫》教学反思
2014/02/26 职场文书
项目工作说明书
2014/07/29 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
婚庆司仪开场白
2015/05/29 职场文书
新教师教学工作总结
2015/08/14 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书