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 07 Python
Python httplib模块使用实例
Apr 11 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
jupyter安装小结
Mar 13 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
python的turtle库使用详解
May 10 Python
python多线程并发实例及其优化
Jun 27 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
python实现简单区块链结构
Apr 25 Python
python如何查找列表中元素的位置
May 30 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
Yii框架实现图片上传的方法详解
2017/05/20 PHP
基于jquery的滑动样例代码
2010/11/20 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
浅析javascript的return语句
2015/12/15 Javascript
DOM 事件的深入浅出(一)
2016/12/05 Javascript
js正则表达式验证密码强度【推荐】
2017/03/03 Javascript
webpack学习笔记之优化缓存、合并、懒加载
2017/08/24 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
vue中当图片地址无效的时候,显示默认图片的方法
2018/09/18 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python中的推导式使用详解
2015/06/03 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Django Admin实现上传图片校验功能
2016/03/06 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python使用gRPC传输协议教程
2018/10/16 Python
Python2与Python3的区别实例分析
2019/04/11 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
python对Excel的读取的示例代码
2020/02/14 Python
PyQt5实现简单的计算器
2020/05/30 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
悬挂训练绳:TRX
2017/12/14 全球购物
Pretty Little Thing美国:时尚女性服饰
2018/08/27 全球购物
微软加拿大官方网站:Microsoft Canada
2019/04/28 全球购物
英语专业职业生涯规划范文
2014/03/05 职场文书
道路交通安全实施方案
2014/03/12 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
团支部推优材料
2014/05/21 职场文书