当前位置:主页 > python教程 > python同步两个文件夹下的内容

python如何同步两个文件夹下的内容

发布:2019-11-21 23:08:33 136


为网友们分享了相关的编程文章,网友满元青根据主题投稿了本篇教程内容,涉及到python、同步、文件夹内容、python同步两个文件夹下的内容相关内容,已被815网友关注,相关难点技巧可以阅读下方的电子资料。

python同步两个文件夹下的内容

本文实例为大家分享了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快速查找list中相同部分的实例代码

    发布:2019-08-16

    今天小编就为大家分享一篇Python快速查找list中相同部分的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


  • 实例讲解Python中浮点型的基本内容

    发布:2022-06-18

    给大家整理了关于Python的教程,在本文里小编给大家整理了关于Python中浮点型的基本知识点内容,有兴趣的朋友们学习下。


  • 《Python编程:入门到实践》第七章:用户输入和while循环

    发布:2018-12-01

    7-1 汽车租赁 编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如Let me see if I can find you a Subaru。 if __name__ == __main__: car = input(please tell me what car your want) print(Let me see if I can find you a %s%car) 结果: please tell me what car your wantSubaruLet me see if I c


  • python中*的用法代码示例

    发布:2020-02-04

    本篇文章给大家带来的内容是关于python中*的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。


  • 实例分析Python多进程池 multiprocessing Pool的使用

    发布:2020-03-05

    这篇文章主要介绍了Python多进程池 multiprocessing Pool用法,结合实例形式分析了多进程池 multiprocessing Pool相关概念、原理及简单使用技巧,需要的朋友可以参考下


  • python如何将图片批量保存至word文档中

    发布:2023-04-23

    这篇文章主要介绍了python如何将图片批量保存至word文档中问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • python判断列表为空的三种方法总结

    发布:2023-04-20

    这篇文章主要介绍了python判断列表为空的三种方法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • python生成密码字典的实例代码方法

    发布:2019-07-30

    今天小编就为大家分享一篇python生成密码字典的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧


网友讨论