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格式化压缩后的JS文件的方法
Mar 05 Python
Python学习笔记之if语句的使用示例
Oct 23 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
python修改txt文件中的某一项方法
Dec 29 Python
详解python中init方法和随机数方法
Mar 13 Python
pyqt5 从本地选择图片 并显示在label上的实例
Jun 13 Python
在Python中画图(基于Jupyter notebook的魔法函数)
Oct 28 Python
python groupby 函数 as_index详解
Dec 16 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
Jan 08 Python
python的reverse函数翻转结果为None的问题
May 11 Python
tensorflow 动态获取 BatchSzie 的大小实例
Jun 30 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 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
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
基于php-fpm 参数的深入理解
2013/06/03 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
javascript实现禁止复制网页内容
2014/12/16 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
vue里面父组件修改子组件样式的方法
2018/02/03 Javascript
webpack结合express实现自动刷新的方法
2019/05/07 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
node.js 如何监视文件变化
2020/09/01 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
JS canvas实现画板和签字板功能
2021/02/23 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
python 返回列表中某个值的索引方法
2018/11/07 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
Python实现代码统计工具
2019/09/19 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
Python关于反射的实例代码分享
2020/02/20 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Pandas直接读取sql脚本的方法
2021/01/21 Python
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
应届护士推荐信
2013/11/16 职场文书
个人求职信范文分享
2013/12/13 职场文书
个人工作作风整改措施思想汇报
2014/10/13 职场文书
担保书范文
2015/01/20 职场文书
白鹤梁导游词
2015/02/06 职场文书
小学生暑假安全保证书
2015/07/13 职场文书