中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python同步兩個文件夾下的內容

發布時間:2020-08-19 19:43:06 來源:腳本之家 閱讀:301 作者:迦藍葉 欄目:開發技術

本文實例為大家分享了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);
#需要同步的文件夾路徑,可以使用絕對路徑,也可以使用相對路徑
synchroPath2 = r'/home/xxx/image1'
synchroPath3 = r'/home/xxx/image2'

#同步方法
def synchro(synchroPath2,synchroPath3):
 leftDiffList = filecmp.dircmp(synchroPath2,synchroPath3).left_only
 rightDiffList = filecmp.dircmp(synchroPath2,synchroPath3).right_only
 commondirsList =filecmp.dircmp(synchroPath2,synchroPath3).common_dirs
 for item in leftDiffList:
  copyPath = synchroPath2 + '/' + item
  pastePath = synchroPath3 + '/' + 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 = synchroPath3 + '/' + 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 commondirsList:
  copyPath = synchroPath3 + '/' + item
  pastePath = synchroPath2 +'/' + 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(synchroPath2,synchroPath3)
 logging.debug('synchro run')
 #阻塞方法,上一步執行結束后等待五秒
 time.sleep(5)

代碼簡單,但是不優雅,歡迎指正。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

白河县| 尉犁县| 鹤岗市| 怀集县| 聂拉木县| 津市市| 宣恩县| 扶余县| 黎城县| 泾阳县| 龙岩市| 凯里市| 黄骅市| 加查县| 阜阳市| 安顺市| 行唐县| 达拉特旗| 盐亭县| 思茅市| 涿鹿县| 南昌县| 定日县| 竹山县| 清原| 梅州市| 疏附县| 洱源县| 永州市| 南雄市| 霞浦县| 岳阳市| 莱阳市| 巴林左旗| 吉安市| 顺义区| 杂多县| 尤溪县| 比如县| 金乡县| 迁西县|