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框架Flask下网站开发入门实例
Feb 08 Python
Python脚本文件打包成可执行文件的方法
Jun 02 Python
python数据类型_字符串常用操作(详解)
May 30 Python
python中实现精确的浮点数运算详解
Nov 02 Python
Python 中导入csv数据的三种方法
Nov 01 Python
Flask配置Cors跨域的实现
Jul 12 Python
在python中做正态性检验示例
Dec 09 Python
python实现飞机大战游戏(pygame版)
Oct 26 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
python实现图片转换成素描和漫画格式
Aug 19 Python
python中的None与NULL用法说明
May 25 Python
Python自动化之批量处理工作簿和工作表
Jun 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
『PHP』PHP截断函数mb_substr()使用介绍
2013/04/22 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
PHP针对redis常用操作实例详解
2019/08/17 PHP
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
关于JavaScript的with 语句的使用方法
2011/05/09 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
jQuery子属性过滤选择器用法分析
2015/02/10 Javascript
c#程序员对TypeScript的认识过程
2015/06/19 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
javascript cookie的基本操作(添加和删除)
2017/07/24 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
在vue中使用Echarts利用watch做动态数据渲染操作
2020/07/20 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
[53:20]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 VG vs OG
2018/04/03 DOTA
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
python绘制彩虹图
2019/12/16 Python
使用OpenCV去除面积较小的连通域
2020/07/05 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
毕业证丢失证明
2014/01/15 职场文书
七一建党日演讲稿
2014/09/05 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫