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中的sort方法使用详解
Jul 25 Python
python实现在每个独立进程中运行一个函数的方法
Apr 23 Python
python显示生日是星期几的方法
May 27 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
深入理解python中的select模块
Apr 23 Python
解决python报错MemoryError的问题
Jun 26 Python
Python中的集合介绍
Jan 28 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
Feb 25 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 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
我的论坛源代码(三)
2006/10/09 PHP
基于OpenCV的PHP图像人脸识别技术
2009/10/11 PHP
smarty模板嵌套之include与fetch性能测试
2010/12/05 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
2014/05/15 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php计算两个坐标(经度,纬度)之间距离的方法
2015/04/17 PHP
PHP与Java对比学习日期时间函数
2016/07/03 PHP
php格式化时间戳
2016/12/17 PHP
PHP论坛实现积分系统的思路代码详解
2020/06/01 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
js 与或运算符 || && 妙用
2009/12/09 Javascript
Knockout visible绑定使用方法
2013/11/15 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
js实现动态创建的元素绑定事件
2016/07/19 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
Python 第一步 hello world
2009/09/25 Python
python数据结构树和二叉树简介
2014/04/29 Python
九步学会Python装饰器
2015/05/09 Python
python求质数的3种方法
2018/09/28 Python
Django之模型层多表操作的实现
2019/01/08 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
python  logging日志打印过程解析
2019/10/22 Python
Python configparser模块常用方法解析
2020/05/22 Python
Python collections.defaultdict模块用法详解
2020/06/18 Python
python 实现IP子网计算
2021/02/18 Python
matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)
2021/02/22 Python
美国性感女装网站:bebe
2017/03/04 全球购物
“型”走纽约上东区:Sam Edelman
2017/04/02 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
介绍一下mysql的日期和时间函数
2013/03/28 面试题
预防艾滋病宣传标语
2014/06/25 职场文书
异地恋情人节寄语
2015/02/28 职场文书
基于Python编写简易版的天天跑酷游戏的示例代码
2022/03/23 Python