python同步两个文件夹下的内容


Posted in Python onAugust 29, 2019

本文实例为大家分享了python同步两个文件夹下的内容,供大家参考,具体内容如下

import os
import shutil
import time
import logging
import filecmp
#日志文件配置
log_filename ='synchro.log'
#日志输出格式化
log_format = '%(filename)s [%(asctime)s] [%(levelname)s] %(message)s'
logging.basicConfig(format=log_format,datefmt='%Y-%m-%d %H:%M:%S %p',level=logging.DEBUG) 
#日志输出到日志文件
fileLogger = logging.getLogger('fileLogger')
fh = logging.FileHandler(log_filename)
fh.setLevel(logging.INFO)
fileLogger.addHandler(fh);
#需要同步的文件夹路径,可以使用绝对路径,也可以使用相对路径
synchroPath1 = r'/home/xxx/image1'
synchroPath2 = r'/home/xxx/image2'

#同步方法
def synchro(synchroPath1,synchroPath2):
 leftDiffList = filecmp.dircmp(synchroPath1,synchroPath2).left_only
 rightDiffList = filecmp.dircmp(synchroPath1,synchroPath2).right_only
 commondirsList =filecmp.dircmp(synchroPath1,synchroPath2).common_dirs
 for item in leftDiffList:
  copyPath = synchroPath1 + '/' + item
  pastePath = synchroPath2 + '/' + item
  if(os.path.isdir(copyPath)):
   copyDir(copyPath,pastePath)
  else :
   shutil.copy2(copyPath,pastePath)
   fileLogger.info('copy '+copyPath +" to "+pastePath)
 for item in rightDiffList:
  copyPath = synchroPath2 + '/' + item
  pastePath = synchroPath1 +'/' + item
  if(os.path.isdir(copyPath)):
   copyDir(copyPath,pastePath)
  else :
   shutil.copy2(copyPath,pastePath)
   fileLogger.info('copy '+copyPath +" to "+pastePath)
 for item in commondirsList:
  copyPath = synchroPath2 + '/' + item
  pastePath = synchroPath1 +'/' + item
  syncDir(copyPath,pastePath)
#拷贝文件夹,如果文件夹不存在创建之后直接拷贝全部,如果文件夹已存在那么就同步文件夹  
def copyDir(copyPath,pastePath):
 if(os.path.exists(pastePath)):
  synchro(copyPath,pastePath)
 else :
  os.mkdir(pastePath)
  shutil.copytree(copyPath,pastePath)
#子文件夹左右两侧文件夹都包含,就同步两侧子文件夹
def syncDir(copyPath,pastePath):
  copyDir(copyPath,pastePath)
  copyDir(pastePath,copyPath)
while(True):
 synchro(synchroPath1,synchroPath2)
 logging.debug('synchro run')
 #阻塞方法,上一步执行结束后等待五秒
 time.sleep(5)

代码简单,但是不优雅,欢迎指正。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python访问系统环境变量的方法
Apr 29 Python
Python从MP3文件获取id3的方法
Jun 15 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
Windows上使用virtualenv搭建Python+Flask开发环境
Jun 07 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
python3+mysql查询数据并通过邮件群发excel附件
Feb 24 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
详解Python3中的迭代器和生成器及其区别
Oct 09 Python
如何给Python代码进行加密
Jan 10 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 #Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 #Python
python rsync服务器之间文件夹同步脚本
Aug 29 #Python
python-tornado的接口用swagger进行包装的实例
Aug 29 #Python
Python csv模块使用方法代码实例
Aug 29 #Python
python datetime中strptime用法详解
Aug 29 #Python
使用OpenCV实现仿射变换—平移功能
Aug 29 #Python
You might like
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
2016/04/14 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
PHP实现清除MySQL死连接的方法
2016/07/23 PHP
php+ajax实现异步上传文件或图片功能
2017/07/18 PHP
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
jquery遍历标签中自定义的属性方法
2016/09/17 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
python安装oracle扩展及数据库连接方法
2017/02/21 Python
Python中str.join()简单用法示例
2018/03/20 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
Python ini文件常用操作方法解析
2020/04/26 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
JINS眼镜官方网站:日本最大的眼镜邮购
2016/10/14 全球购物
解释一下ArrayList Vector和LinkedList的实现和区别
2013/04/26 面试题
数据库测试通常都包括哪些方面
2015/11/30 面试题
计算机开发个人求职信范文
2013/09/26 职场文书
大学生学习2014全国两会心得体会
2014/03/13 职场文书
委托公证书范本
2014/04/03 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
社区低保工作总结2015
2015/07/23 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS