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
創新從一行代碼開始!