學習python?下面是如何複製檔案

需要用Python程式碼複製檔案嗎?下面介紹如何用Python複製帶有shutil、os、subprocess和庫的檔案...

您想提高Python技能嗎?然後,您可以嘗試使用Python在計算機上執行一些任務。使用Python將文件從一個目錄複製和粘貼到另一個目錄是一種有趣的方法。

Copy files in Python

除了有趣,它還可以讓您快速地閱讀和編寫文件,而不會分散您的代碼的注意力。如果您是Python的新手,那麼您可能仍然需要採用某種方法來學習。因此,讓我們通過本文了解如何使用Python複製文件。

使用python複製文件的要求

使用Python複製和粘貼文件有很多方法。因此,執行它的需求會有所不同,並取決於您決定使用的方法。

雖然使用Python複製文件可能不需要額外的模塊,但如果需要,仍然可以使用內置庫。

例如,如果要使用os方法,則需要將其導入到代碼中。然而,用Python複製文件的一種流行方法是使用shutil庫。

讓我們看看如何使用這些不同的方法來用Python複製文件。

如何使用python內置的shutil庫複製文件

shutil模塊是一個內置的、功能強大的Python庫,用於在Python中快速讀寫文件。

要使用它,只需提供源文件和目標文件的完整路徑。

本質上,shutil採用以下格式:

shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

例如,下面的代碼使用shutil.副本()複製名為複製.txt從一個名為“我的\文件夾”的文件夾進入另一個名為“目的地”的文件夾。然後將目標文件重命名為新文件.txt:

import shutilsourceFile = "C:/Users/some_directories/my_folder/copy.txt"destinationFile = "C:/Users/some_directories/destination/newFile.txt"shutil.copy(sourceFile, destinationFile, follow_symlinks=True)

請注意,您可以在自己選擇的任何代碼編輯器中編寫代碼。然後可以使用命令行運行它。

但是,如果不熟悉通過命令行運行Python,也可以使用默認的Python集成開發環境(IDLE)。

相關:命令提示符(CMD)命令你必須知道

這個shutil.副本方法不復制源文件的元數據。本質上,您的機器將目標文件視為一個全新的文件,併為其提供新的元數據。

但是,要將元數據與原始文件一起復制,請使用shutil.copy2文件方法:

import shutilshutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

上面的方法將舊文件的原始元數據保存在目標文件中。例如,目標文件保留創建源文件的日期、大小和其他屬性。

follow\u symlinks參數是一個符號鏈接聲明,它允許shutil遵循絕對路徑。因此,如果源文件和目標文件位於不同的目錄中,則需要包含它。

但如果兩個文件都在當前工作目錄中,則不需要包含follow\u符號鏈接。如果這樣做,Python會引發語法異常。

因此,如果要將源文件粘貼到當前工作目錄中,代碼應該如下所示:

import shutilshutil.copy2(sourceFile, destinationFile)

除了使用上面的shtuil方法,還可以使用shutil.copyfile或者shutil.copyfileobj文件.

使用shutil.copyfileobj文件有點不同,因為它需要內置的open函數。然後,您需要通過包含“rb”和“wb”參數來讀寫二進制文件。

讓我們看看shutil.copyfileobj文件方法使用我們以前使用的相同目錄工作:

import shutilsourceFilePath = open("C:/Users/some_directories/my_folder/copy.txt", "rb")destinationFilePath = open("C:/Users/some_directories/destination/newFile.txt", "wb")shutil.copyfileobj(sourceFilePath, destinationFilePath)

請注意shutil.copyfileobj文件()不需要follow\u symlinks參數。

然而,shutil.copyfile文件()的工作方式與.copy和.copy2的工作方式基本相同。它們的內部功能差別不大。

使用shutil.copyfile文件()方法:

import shutilsourceFilePath = "C:/Users/some_directories/my_folder/copy.txt"destinationFilePath = "C:/Users/some_directories/destination/newFile.txt"shutil.copyfile(sourceFilePath, destinationFilePath)

如何使用操作系統模塊複製文件

操作系統模塊使用兩種內置方法來複制文件;操作系統()和歐斯波本()方法。

這個操作系統()方法允許您模擬命令行環境。

但是,os方法的一個缺點是它們只複製當前工作目錄中的文件。

使用操作系統()Windows上的方法:

import osos.system('copy source.txt destination.txt)

也可以使用內置的xcopy Windows terminal命令:

import osos.system('xcopy source.txt destination.txt)

使用操作系統方法,將copy替換為cp:

import osos.system('cp source.txt destination.txt)

如何使用歐斯波本方法

要使用此方法,請替換操作系統()帶歐斯波本().

在Windows上,使用:

import osos.popen('copy source.txt destination.txt)

就像我們對操作系統(),將copy替換為cp以在Linux上使用此方法:

import osos.popen('cp source.txt destination.txt)

如何用python的子進程模塊複製文件

除上述方法外,還可以使用subprocess()庫複製Python中的文件:

import subprocess as spsp.call("copy sourceFile destinationFile", shell=True)

但是,在Linux上,請使用:

import subprocess as spsp.call("cp sourceFile destinationFile", shell=True)

子流程庫還使用子流程檢查()方法。它的工作方式相同子流程調用()執行:

import subprocess as spsp.check_out("copy sourceFile destinationFile", shell=True)

在Linux上,將copy替換為cp:

import subprocess as spsp.check_out("cp sourceFile destinationFIle", shell=True)

但是,與os方法一樣,subprocess方法只能處理當前工作目錄中的文件。

注意:如果文件與源文件位於同一工作目錄中,也可以將其複製到文件夾中。您只需將目標文件名替換為目標文件夾的名稱。但是,請確保目標文件夾和源文件位於當前工作目錄中。

如何在不使用庫的情況下複製python中的文件

也可以在Python中複製文件,而不依賴於任何庫。與shutil方法一樣,您只需要源目錄和目標目錄的完整路徑。

以下是如何做到這一點:

sourcePath = "C:/Users/source_directories/my_folder/copy.txt"destinationPath = "C:/Users/some_directories/destination_directories/newFile.txt"with open(sourcePath, "rb") as read: with open(destinationPath, "wb") as myfile: myfile.write(read.read())

要使代碼可重用,可以將其修改為函數:

def copyFile(source=None, destination=None):if not (source and destination)==None:with open(source, "rb") as read:with open(destination, "wb") as myfile:myfile.write(read.read())else:print("Please enter the source and destination paths")copyFile(sourcePath, destinationPath)

就這樣。您剛剛用Python**了一個可重用的文件複印機,沒有使用任何庫。

繼續使用python自動化任務

除了幫助您在構建項目時專注於代碼之外,使用Python複製文件還可以讓您更好地理解Python的文件管理。但是,使用Python任務是提高Python技能的一種方法,特別是如果您是初學者的話。

例如,您可以使用操作系統模塊更改PC上的日期和時間。如果需要,甚至可以用Python編寫自定義bash命令。

  • 發表於 2021-03-11 10:45
  • 閱讀 ( 52 )
  • 分類:程式設計

你可能感興趣的文章

如何在任何使用python的計算機上安裝selenium webdriver

...web應用程式。該框架可用於多種程式語言,包括Java、C#、Python和Perl。 ...

  • 發佈於 2021-03-10 21:27
  • 閲讀 ( 61 )

透過指令碼自動化gimp來節省您的時間和精力

...GIMP中使用Python編寫指令碼並不容易,但是如果您準備好學習訣竅的話,這是非常有益的。下面是如何開始使用幾個非常基本的指令碼。 ...

  • 發佈於 2021-03-13 15:27
  • 閲讀 ( 54 )

用這些免費的線上互動式shell在瀏覽器中試用python

如果您正在考慮學習Python,那麼您可能會被初始設定過程弄得不知所措。您需要在系統上安裝Python,然後學習如何使用命令列處理程式碼,或者學習如何使用互動式shell,或者學習如何設定pythonide。 ...

  • 發佈於 2021-03-15 00:25
  • 閲讀 ( 53 )

如何讓python和javascript使用json進行通訊

...用的是Windows,那麼您需要下載並安裝Python,也許還需要學習一下您的命令列技能。 ...

  • 發佈於 2021-03-16 01:22
  • 閲讀 ( 70 )

瞭解如何使用python虛擬環境

無論您是一名經驗豐富的Python開發人員,還是剛剛起步,學習如何設定虛擬環境對於任何Python專案都是必不可少的。和我一起討論Python虛擬環境的所有知識。 ...

  • 發佈於 2021-03-16 10:00
  • 閲讀 ( 53 )

使用rsync備份資料(無需桌面)

... 所有rsync命令基本上是相同的,所以應該很容易理解。下面是最基本的命令,它只是將一個資料夾的內容複製到另一個資料夾: ...

  • 發佈於 2021-03-16 12:17
  • 閲讀 ( 49 )

如何用python讀寫google工作表

...的程式語言。語法可能看起來奇怪和不尋常,但它很容易學習和使用。它支援Minecraft Pi版,以及一系列網站和學術研究專案。 ...

  • 發佈於 2021-03-16 13:43
  • 閲讀 ( 71 )

製作一個樹莓皮gmail通知燈

在這個快速簡單的Raspberry Pi專案中,您將學習如何**Gmail電子郵件通知燈。如果您有任何未讀的電子郵件,Python指令碼會開啟指示燈。這個專案需要很少的部分,可以在一個小時內完成!當然,你可以把你的LED打扮成任何你喜歡...

  • 發佈於 2021-03-17 17:32
  • 閲讀 ( 53 )

如何在虛擬機器來賓和主機pc之間傳輸檔案

... 學習如何在虛擬機器和主機作業系統之間共享資料將有助於提高虛擬機器的使用成本。這些提高虛擬機器效能的技巧也會有所幫助。 ...

  • 發佈於 2021-03-18 10:09
  • 閲讀 ( 57 )

如何使用pandas將excel資料匯入python指令碼

...使用過Python,那麼本教程可能有點困難。我們建議從這些學習Python的網站和這些基本的Python示例開始。 ...

  • 發佈於 2021-03-19 06:40
  • 閲讀 ( 56 )