1. 程式人生 > >Python學習筆記-校驗源與備份目錄差異

Python學習筆記-校驗源與備份目錄差異

校驗源與備份目錄差異

    有時我們無法確認備份與源目錄檔案是否保持一致,包括源目錄中的新檔案或目錄、更新檔案或目錄有無成功同步,定期進行校驗,沒有成功則希望有針對性地進行補備份。

本例使用了filecmp模組的left_only、diff_files方法遞迴獲取源目錄的更新項,再通過shutil.copyfile、os.makedirs方法對更新項進行復制,最終保持一致狀態。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#!/usr/bin/python3
#import osimport sysimport filecmpimport reimport shutilholderlist=[]def compareme(dir1,dir2):   # dircomp = filecmp.dircmp(dir1,dir2) only_in_one = dircomp.left_only     # diff_in_one = dircomp.diff_files    # dirpath = os.path.abspath(dir1)     #
[holderlist.append(os.path.abspath(os.path.join(dir1,x))) for x in only_in_one] [holderlist.append(os.path.abspath(os.path.join(dir1,x))) for x in diff_in_one] if len(dircomp.common_dirs) > 0:    #便 for item in dircomp.common_dirs:    # compareme(os.path.abspath
(os.path.join(dir1,item))os.path.abspath(os.path.join(dir2,item))) return holderlistdef checkargv(): if len(sys.argv) < 2:   # print ("Usage: "sys.argv[0]"datadir backupdir") sys.exit() else: dir1 = sys.argv[1] dir2 = sys.argv[2] source_files = compareme(dir1,dir2)     # dir1 = os.path.abspath(dir1) if not dir2.endswith('/'):      #“/” dir2 = dir2+'/'      dir2 = os.path.abspath(dir2) destination_files = [] createdir_bool = False for item in source_files:   # destination_dir = re.sub(dir1,dir2,item)    # destination_files.append(destination_dir)   if os.path.isdir(

相關推薦

Python學習筆記-備份目錄差異

校驗源與備份目錄差異     有時我們無法確認備份與源目錄檔案是否保持一致,包括源目錄中的新檔案或目錄、更新檔案或目錄有無成功同步,定期進行校驗,沒有成功則希望有針對性地進行補備份。

備份目錄差異

一、概要 有時候我們無法確認備份目錄與原目錄是否保持一致,包括源目錄中的新檔案或目錄、更新檔案或目錄有無成功同步,定期進行校驗,沒有成功則希望有針對性地進行補備份。本示例使用了flilecmp模組的left_only、diff_files方法遞迴獲取源目錄的更新項,再通過shutil.c

python學習筆記之split()方法with

很好 self 所有 簡單 car 版本 指定 操作 發生 Python split()方法 以下內容摘自:http://www.runoob.com/python/att-string-split.html 描述 Python split()通過指定分隔符對字符串進行切片

Python學習筆記 - day13 - 進程線程

== 顯示 length 例子 啟動 管道 快的 odin tex 概述   我們都知道windows是支持多任務的操作系統。   什麽叫“多任務”呢?簡單地說,就是操作系統可以同時運行多個任務。打個比方,你一邊在用瀏覽器上網,一邊在聽MP3,一邊在用Word趕作業,這就是

Python學習筆記之函數正則

地址 tee 大於等於 格式 匿名函數 驗證碼 分組 indent 引用 Python函數 Pycharm 常用快捷鍵,例如復制當前行、刪除當前行、批量註釋、縮進、查找和替換。 常用快捷鍵的查詢和配置:Keymap Ctrl + D:復制當前行 Ctrl + E:刪除當前

Python學習筆記之面對象錯誤處理

實現 單繼承 父類 成對 數據類型 itl 同時 屬性 子類 反射 __import__()函數用於加載類和函數 __import__(name[, globals[, locals[, fromlist[, level]]]]) 參數說明: n

python 學習筆記 -- 數據結構算法 】冒泡排序 Bubble sort

n) -c 排序算法 都是 大小 是什麽 最大值 我們 pri 推薦一個可視化的網站 【 Visual Algo 】: URL= ‘https://visualgo.net/en/sorting‘ 這個網站給出了各種排序算法的原理和過程,通過動態形式直觀得展現出來。另外還給

python 學習筆記 -- 數據結構算法 】歸並排序 Merge Sort

implement 哪些 但是 orm width bsp 過程 完成 分享 【歸並排序】這裏我們利用遞歸算法不斷地將列表一分為二,base case就是列表中沒有元素或者只剩一個元素,因為此時這個子列表必然是正序的;然後再逐步把兩個排序完成的子列表合並成一個新的正序列表,

python 學習筆記 -- 數據結構算法 】快速排序 Quick Sort

mark 效率 空間 eight png orm 歸並 應該 筆記 【快速排序】:   利用遞歸算法, 首先選擇一個基準值(pivot value),這裏我們選列表的第一個值作為例。這個基準值的作用是協助列表的分割。   這個基準值在正序列表中的正確位置,我們稱之為分割點(

python學習筆記03 --------------程式互動格式化輸出

1.讀取使用者輸入內容 語法:input()   例: name = input('你的名字是?) print('你好'+name)   程式會等待使用者輸入名字後列印:你好(使用者輸入的名字)   注意:input接受的所有內容都是字串型別。  

python學習筆記01 --------------hello world 變數。

1.第一個程式: print('hello world')   輸出結果: hello world   2.變數 2.1 變數的作用: 把程式運算的中間結果臨時存到記憶體裡,以備後面的程式碼繼續呼叫。   2.2 變數的宣告方式: 變數名(識別符號) = 值

python學習筆記9(字典集合)

字典與集合 字典 定義: 使用鍵-值(key-value)儲存,具有極快的查詢速度 注意: 字典是無序的 key的特性: 1、字典中的key必須唯一 2、key必須是不可變物件 3、字串、整數等都是不可變的,可以作為key 4、list是可變的,不能作為key 思考: 儲存多位學

python學習筆記21(類物件的屬性)

類與物件的屬性 物件屬性與類屬性 class Person(object): # 這裡的屬性實際上屬於類屬性(用類名來呼叫) name = "person" def __init__(self, name): pass #物件屬

python學習筆記20(繼承多型)

繼承與多型 繼承: 單繼承的實現: 只有一個父類 #建立父類 class Person(object): def __init__(self, name, age, money): self.name = name self.age =

Python學習筆記之模塊

後綴 inf 有一個 dll _file__ .org 都是 load 我會 一、模塊 1、模塊的概念 模塊這一概念很大程度上是為了解決代碼的可重用性而出現的,其實這一概念並沒有多復雜,簡單來說不過是一個後綴為 .py 的 Python 文件而已 例如,我在某個工作中經常需

Python學習筆記——動態新增屬性方法

我們都知道Python是動態語言。 動態?動態在哪裡呢? 假如C語言定義了一個類,我們在類固定的情況下,可以不可以為這個類或者這個類的物件新增物件呢?答案肯定是否定的 但是Python就可以。下面我們來看看。 一.動態新增屬性 1.動態新增物件

python源目錄備份目錄差異檢查並同步

差異檢查與備份 filecmp #!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import re import filecmp import shutil holderlist=[] def compareme(

“笨辦法學python學習筆記-在終端powershell中對目錄進行簡單的編輯(一)

1.new-item -path c:/ -name 新建資料夾或檔案的名字 -type directory 意思是在C盤新建一個資料夾 new-item: 新建專案 -path:指定路徑 -name:檔案或資料夾的名字 -type directory:型別目錄,也就是資料夾,

python學習筆記-38 操作文件和目錄

ras eas 合成 文件復制 使用 mkdir copyfile cal 文件 如果我們要操作文件、目錄,可以在命令行下面輸入操作系統提供的各種命令來完成。比如dir、cp等命令。 如果要在Python程序中執行這些目錄和文件的操作怎麽辦?其實操作系統提供的命令只是簡單

python學習筆記之列表元組

長度 bsp 最大 一般來說 設置 概述 檢查 常用 而且 一、概述 python包含6種內建的序列,其中列表和元組是最常用的兩種類型。列表和元組的主要區別在於,列表可以修改,元組則不能修改 使用上,如果要根據要求來添加元素,應當使用列表;而由於要求序列不可修改時,此時