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批量同步web服务器代码核心程序
Sep 01 Python
使用python和pygame绘制繁花曲线的方法
Feb 24 Python
python实现超市扫码仪计费
May 30 Python
python3实现磁盘空间监控
Jun 21 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
Jun 25 Python
Python自定义一个异常类的方法
Jun 27 Python
Python3安装pip工具的详细步骤
Oct 14 Python
python实现通过队列完成进程间的多任务功能示例
Oct 28 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python中for in的用法详解
Apr 17 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 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设计模式 Command(命令模式)
2011/06/26 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
再探JavaScript作用域
2014/09/24 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
基于jquery实现简单的手风琴特效
2015/11/24 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
实现vuex原理的示例
2020/10/21 Javascript
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
详解Python自建logging模块
2018/01/29 Python
Opencv+Python 色彩通道拆分及合并的示例
2018/12/08 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
ubuntu上安装python的实例方法
2019/09/30 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
详解KMP算法以及python如何实现
2020/09/18 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
英国袜子店:Sock Shop
2017/01/11 全球购物
Camper鞋西班牙官方网上商店:西班牙马略卡岛的鞋类品牌
2019/03/14 全球购物
美国牙科折扣计划:DentalPlans.com
2019/08/26 全球购物
学前教育教师求职自荐信
2013/09/22 职场文书
少先队活动总结
2014/08/29 职场文书
律师授权委托书范本
2014/10/07 职场文书
黄山导游词
2015/01/31 职场文书
世界文化遗产导游词
2015/02/13 职场文书
房租涨价通知
2015/04/23 职场文书
爱国教育主题班会
2015/08/14 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书