如何使用 Python 將檔案從一個資料夾複製到另一個資料夾?


檔案是儲存在計算機上的資訊或資料的集合。您已經熟悉幾種檔案型別,例如音訊、影片和文字檔案。

文字檔案和二進位制檔案是我們通常將檔案劃分的兩大類。文字檔案包含簡單的文字,而二進位制資料只能被計算機讀取。

一組檔案和子目錄稱為目錄或資料夾。子目錄是在目錄記憶體在的目錄。許多作業系統功能可以自動執行。

使用 Python 進行檔案操作

Python 提供了多種方法來對底層作業系統的檔案和資料夾執行操作。

  • Python 中的OS 模組 具有新增和刪除資料夾、檢索其內容、更改目錄、查詢當前目錄等功能。匯入此模組,我們將使用它的listdir() 方法 來獲取檔案。

  • 類似地,shutil 模組提供了許多用於處理檔案和相關集合的操作的功能。它允許使用者複製和刪除檔案。您可以使用此模組的 shutil.copy()shutil.copy2()shutil.copytree() 方法將一個資料夾的內容複製到另一個資料夾。

您可以透過匯入其各自的模組,如下所示,將這些函式包含在您的檔案中:

import shutil shutil.submodule_name(arguments passed)

使用 shutil.copy() 操作

使用此函式,原始檔的文字或內容將複製到目標檔案或目錄。此外,檔案的許可權模式將被保留,但檔案元資料(例如“建立日期”、“修改日期”等)不會被保留。

語法

shutil.copy() 方法的語法如下:

shutil.copy(origin, target)

其中,

  • 源 - 包含原始檔位置或路徑的字串

  • 目標 - 包含目標檔案位置或路徑的字串。

示例

以下是如何使用 shutil.copy() 操作將檔案從一個資料夾複製到另一個資料夾的示例

# importing the modules import os import shutil # Providing the folder path origin = 'C:\Users\Lenovo\Downloads\Works' target = 'C:\Users\Lenovo\Downloads\Work TP' # Fetching the list of all the files files = os.listdir(origin) # Fetching all the files to directory for file_name in files: shutil.copy(origin+file_name, target+file_name) print("Files are copied successfully")

輸出

以下是上述查詢的輸出

Files are copied successfully

注意 - 可以使用相對路徑和絕對路徑來複制檔案。路徑指示檔案在磁碟上的位置

絕對路徑包含查詢檔案所需的整個目錄列表。例如,查詢 samples.txt 的絕對路徑為:C:\Users\Lenovo\Downloads\Works

在這裡,我們提供了檔案源和目標的資料夾路徑。

使用 shutil.copy2() 操作

首先,此函式與copy()完全相同,區別在於它會跟蹤原始檔的元資料。

此程式的執行與 shutil.copy() 完全相同。唯一的區別是,在將檔案提取到目錄時,我們使用 shutil.copy2() 而不是 shutil.copy()

shutil.copy2(origin+file_name, target+file_name)

語法

shutil.copy2() 方法的語法如下:

shutil.copy2(origin, target)

源和目標值與上面定義的相同。

此程式碼中的 copy2() 函式除了 copy() 之外還執行一個額外的操作,即保留元資料。

使用 shutil.copytree() 方法

此函式將檔案及其包含的任何子目錄從一個目錄移動到另一個目錄。

這意味著源和目標都包含檔案。字串必須包含兩個引數的名稱。

語法

shutil.copytree() 方法的語法如下:

shutil.copytree(origin, target)

源和目標值與上面定義的相同。

示例

以下是如何使用 shutil.copytree() 操作將檔案從一個資料夾複製到另一個資料夾的示例

# importing the module import shutil # Fetching all the files to directory shutil.copytree('C:\Users\Lenovo\Downloads\Works','C:\Users\Lenovo\Downloads\Work TP\/newfolder') print("File Copied Successfully")

輸出

以下是上述查詢的輸出

File Copied Successfully

作為輸出,我們將能夠看到執行後所做的更改,即“Works”資料夾被複制到“Works TP”資料夾,並使用程式碼中分配的“newfolder”名稱,其中包含“Works”資料夾中的所有檔案。

為了獲得該檔案的副本,我們在程式碼中包含了 copytree() 函式。

更新於:2023年8月24日

44K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告