
Python 中的 shutil 庫提供了多種複製檔案和目錄的功能。在本篇文章中,我們將深入探討五種方法:shutil.copy、shutil.copyfile、shutil.copy2、shutil.copyfileobj 以及 shutil.copytree。我們將透過實例檢視它們的差異並了解它們的應用。
shutil.copy 函式允許我們將檔案的內容複製到另一個位置。以下是一個簡單的程式碼片段,示範了它的使用:
import shutil
source = 'source.txt'
destination = 'destination.txt'
shutil.copy(source, destination)在這個例子中,source.txt 的內容被複製到 destination.txt。如果 destination.txt 不存在,將會被創建。
與 shutil.copy 不同,shutil.copyfile 只複製檔案的內容,忽略任何元數據,如權限。以下是一個範例:
import shutil
source = 'source.txt'
destination = 'destination.txt'
shutil.copyfile(source, destination)這段程式將會將 source.txt 的內容複製到 destination.txt,但不複製任何檔案的元數據。
shutil.copy2 函式的行為與 shutil.copy 類似,但它還保留了原始檔案的元數據,如時間戳記。以下是它的使用方法:
import shutil
source = 'source.txt'
destination = 'destination.txt'
shutil.copy2(source, destination)source.txt 的內容和元數據將會被複製到 destination.txt。
shutil.copyfileobj 函式用於將檔案物件的內容複製到另一個檔案物件。以下是一個實際範例:
import shutil
with open('source.txt', 'rb') as src, open('destination.txt', 'wb') as dest:
shutil.copyfileobj(src, dest)這段程式從 source.txt 讀取內容並寫入到 destination.txt。
shutil.copytree 函式用於複製整個目錄結構。以下是一個範例:
import shutil
source_dir = 'source_directory'
destination_dir = 'destination_directory'
shutil.copytree(source_dir, destination_dir)這段程式將會將 source_directory 的全部內容複製到 destination_directory。
| 函式 | 複製內容 | 複製權限 | 複製元數據 | 使用檔案物件 | 目標可能為目錄 |
|---|---|---|---|---|---|
| shutil.copy | 是 | 是 | 否 | 否 | 是 |
| shutil.copyfile | 是 | 否 | 否 | 否 | 否 |
| shutil.copy2 | 是 | 是 | 是 | 否 | 是 |
| shutil.copyfileobj | 是 | 否 | 否 | 是 | 否 |
| shutil.copytree | 是 | 是 | 是 | 否 | 是 |
Python 的 shutil 函式庫提供多種複製檔案和目錄的函式。了解它們之間的差異可以確保有效的檔案管理。
shutil.copy 複製內容和權限,而 shutil.copy2 也包括元數據,如時間戳記。shutil.copytree 遞迴地複製整個目錄結構,包括所有嵌套的目錄和檔案。shutil.copytree 中使用 symlinks=True 參數以保留符號連結。| [Python] 通過各種實例深入理解位元運算符 |
|---|
| [Python] 通過各種實例深入理解關係運算符 |
| [Python] 解決 'zsh: command not found: python' 錯誤的方法 |
| [Python] 通過各種實例深入理解賦值運算符 |
| [Python] 通過各種實例深入理解算術運算符 |

CloneCoding
創新從一行代碼開始!