如何使用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)

其中:

  • 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)

Origin 和 target 值與上面定義的相同。

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

使用 shutil.copytree() 方法

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

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

語法

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

shutil.copytree(origin, target)

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+ 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告