在Python中,我們可以使用os模塊和shutil模塊來實現目錄的全文備份。
首先,我們需要引入這兩個模塊:
import os import shutil
接下來,我們需要定義備份函數:
def backup(src_dir, dst_dir): """ 將src_dir目錄中的所有文件和子目錄,備份到dst_dir目錄中 """ # 創建備份目錄 if not os.path.exists(dst_dir): os.mkdir(dst_dir) # 遍歷目錄 for root, dirs, files in os.walk(src_dir): # 處理子目錄 for dir in dirs: # 獲取子目錄相對路徑 rel_dir = os.path.relpath(os.path.join(root, dir), src_dir) # 構造備份目錄子目錄 abs_dir = os.path.join(dst_dir, rel_dir) # 創建備份目錄子目錄 if not os.path.exists(abs_dir): os.mkdir(abs_dir) # 處理文件 for file in files: # 獲取文件相對路徑 rel_file = os.path.relpath(os.path.join(root, file), src_dir) # 構造備份目錄文件路徑 abs_file = os.path.join(dst_dir, rel_file) # 復制文件 shutil.copy2(os.path.join(root, file), abs_file)
在上面的代碼中,我們使用os.walk函數來遍歷目錄,并使用os.path.relpath函數獲取文件或子目錄的相對路徑。然后,我們就可以按照相對路徑構造備份目錄,并使用shutil.copy2函數復制文件。
最后,我們可以調用備份函數來完成目錄的備份:
src_dir = "C:/test" dst_dir = "D:/backup" backup(src_dir, dst_dir)
在上面的代碼中,我們將src_dir目錄備份到了dst_dir目錄中。