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利用hook技术破解https的实例代码
Mar 25 Python
python中while循环语句用法简单实例
May 07 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
python中import与from方法总结(推荐)
Mar 21 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
通过cmd进入python的实例操作
Jun 26 Python
python logging模块书写日志以及日志分割详解
Jul 22 Python
将Pytorch模型从CPU转换成GPU的实现方法
Aug 19 Python
Python进度条的制作代码实例
Aug 31 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
pytorch AvgPool2d函数使用详解
Jan 03 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
Ajax+PHP边学边练 之五 图片处理
2009/12/03 PHP
php中count获取多维数组长度的方法
2014/11/03 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
PHP发送短信代码分享
2015/08/11 PHP
PHP防盗链的基本思想 防盗链的设置方法
2015/09/25 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
js树形控件脚本代码
2008/07/24 Javascript
取选中的radio的值
2010/01/11 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
解决jquery中美元符号命名冲突问题
2014/01/08 Javascript
在Python中使用glob模块查找文件路径的方法
2015/06/17 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
JS/jquery实现一个网页内同时调用多个倒计时的方法
2017/04/27 jQuery
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
vue实现的上拉加载更多数据/分页功能示例
2019/05/25 Javascript
Vue项目中使用mock.js的完整步骤
2021/01/12 Vue.js
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
在Python 中实现图片加框和加字的方法
2019/01/26 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
面试后的感谢信范文
2014/02/01 职场文书
自立自强的名人事例
2014/02/10 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
物流管理专业自荐信
2014/06/23 职场文书
银行奉献演讲稿
2014/09/16 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
小学重阳节活动总结
2015/03/24 职场文书
保护环境建议书作文300字
2015/09/14 职场文书
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server