如何在 Python 中複製二進位制檔案?


在 Python 中,處理檔案並對其進行處理以實現某些目標是一項反覆且常規的任務。有時,您可能會發現需要複製包含非文字內容(例如影像、音訊或影片檔案)的二進位制檔案。在本文中,我們將探索多種方法來探索在 Python 中複製二進位制檔案的有效方法。我們將處理四個不同的程式碼示例,每個示例都說明了一種獨特且不同的複製二進位制檔案的方法。您會很高興地知道,我們將透過清晰的分步說明和使用者友好的內容來 expertly 指導您完成此過程。因此,讓我們開始這段掌握 Python 中二進位制檔案複製技能的旅程吧!

瞭解二進位制檔案複製

首先,我們將繼續瞭解二進位制檔案複製的過程。稍後我們將使用程式碼示例來進一步擴充套件我們對它的理解。二進位制檔案是那些包含非文字資料的檔案,例如影像、音訊和影片內容,通常以二進位制程式碼表示。與文字檔案不同,二進位制檔案需要使用專用的方法進行復制,因為簡單基於文字的方法是不夠的,並且效果不佳。Python 為我們提供了一個強大的名為 shutil 的模組,該模組在幫助複製二進位制檔案方面大有幫助。

使用 shutil.copy()

我們的第一個示例明確展示了使用 shuttle.copy() 複製二進位制檔案。

在此程式碼中,我們首先匯入 shuttle 模組。此模組使執行高階操作成為可能。copy_binary_file() 函式接受 source_path 和 destination_path 作為引數。這些路徑表示原始檔和目標檔案的路徑。然後,我們繼續使用 shutil.copy(source_path, destination_path) 函式將二進位制檔案從源路徑複製到目標路徑。如果操作成功,則該函式列印成功訊息。如果檔案路徑中的任何一個無效,則列印相應的錯誤訊息。

示例

import shutil

def copy_binary_file(source_path, destination_path):
   try:
      shutil.copy(source_path, destination_path)
      print("Binary file copied successfully!")
   except FileNotFoundError:
      print("Error: One or both of the file paths are invalid.")

使用 shutil.copyfile()

我們當前的示例繼續突出顯示並說明了使用 shutil.copyfile() 進行二進位制檔案複製。

這裡,shutil.copy() 函式被 shutil.copyfile() 函式替換以獲得相同的結果。需要注意的是,copyfile() 函式專門用於複製二進位制檔案。我們應該知道它以源路徑和目標路徑作為引數,並將二進位制資料從原始檔複製到目標檔案。

示例

import shutil

def copy_binary_file(source_path, destination_path):
   try:
      shutil.copyfile(source_path, destination_path)
      print("Binary file copied successfully!")
   except FileNotFoundError:
      print("Error: One or both of the file paths are invalid.")

使用 with open()

在我們的下一個示例中,我們將繼續演示一種透過使用“with open()”語句複製二進位制檔案的替代方法。

這裡,在此程式碼中,我們將繼續使用“with open()”語句處理“rb”和“wb”模式。“rb”模式表示“讀取二進位制”,而“wb”模式表示“寫入二進位制”。我們使用這些模式開啟原始檔和目標檔案。然後,使用 source_file.read() 從原始檔讀取二進位制資料,然後使用 destination_file.write() 函式將其寫入目標檔案。此方法導致檔案之間有效地複製二進位制資料。

示例

def copy_binary_file(source_path, destination_path):
   try:
      with open(source_path, 'rb') as source_file:
         with open(destination_path, 'wb') as destination_file:
            destination_file.write(source_file.read())
      print("Binary file copied successfully!")
   except FileNotFoundError:
      print("Error: One or both of the file paths are invalid.")

使用 shutil.copy2()

在我們的最後一個示例中,我們將使用 shutil.copy2() 函式複製二進位制檔案,同時保留元資料。

在此示例中,我們將繼續用 shutil.copy2() 替換 shutil.copyfile()。copy2() 函式與 copyfile() 非常相似,但它會保留複製檔案中原始檔案的元資料,例如許可權和時間戳。當您想要保留和維護原始檔案的元資料時,這非常有用。

示例

import shutil

def copy_binary_file(source_path, destination_path):
   try:
      shutil.copy2(source_path, destination_path)
      print("Binary file copied successfully!")
   except FileNotFoundError:
      print("Error: One or both of the file paths are invalid.")

在 Python 中複製二進位制檔案是一項基本且必要的技能,它證明在各種專案中都非常寶貴且不可或缺。藉助 shutil 模組,此任務可以高效且輕鬆地完成。您現在已經看到我們探索了四個不同的程式碼示例,每個示例都提供了一種獨特的複製二進位制檔案的方法。無論您選擇 shutil.copy()、shutil.copyfile()、with open() 語句或 shutil.copy2() 中的哪種方法,您都將高效地完成所需的任務。

在您繼續 Python 之旅時,請認識並利用檔案操作的多功能性,並嘗試各種方法以適應不同的場景。

更新於: 2023-07-27

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.