1. 程式人生 > 程式設計 >利用Python複製檔案的9種方法總結

利用Python複製檔案的9種方法總結

以下是演示**“如何在Python中複製檔案”的九種方法**。

  1. shutil copyfile()方法
  2. shutil copy()方法
  3. shutil copyfileobj()方法
  4. shutil copy2()方法
  5. os popen方法
  6. os系統()方法
  7. Thread()方法
  8. 子程序呼叫()方法
  9. 子程序check_output()方法


1. Shutil Copyfile()方法

該方法只有在目標可寫時才將源的內容複製到目的地。如果您沒有寫入許可權,則會引發IOError。

它通過開啟輸入檔案進行閱讀,忽略其檔案型別。接下來,它不會對特殊檔案進行任何不同的處理,也不會將它們複製為新的特殊檔案。

所述的CopyFile()方法利用較低級別的功能的copyfileobj()的下方。它將檔名稱作為引數,開啟它們並將檔案控制代碼傳遞給copyfileobj()。該方法中有一個可選的第三個引數,您可以使用它來指定緩衝區長度。然後它將開啟檔案以讀取指定緩衝區大小的塊。但是,預設行為是一次性讀取整個檔案。

以下是有關**copyfile()**方法的要點。

  • 它將源的內容複製到名為目標的檔案。
  • 如果目的地不可寫,則複製操作將導致IOError異常。
  • 如果原始檔和目標檔案都相同,它將返回SameFileError。
  • 但是,如果目的地以不同的名稱預先存在,則副本將覆蓋其內容。
  • 如果目的地是目錄,則意味著此方法將不會複製到目錄,將會發生錯誤13。
  • 它不支援複製檔案,如字元或塊裝置和管道。


2. Shutil Copy()方法


copy()方法的功能類似於“CP”在Unix命令。這意味著如果目標是一個資料夾,那麼它將在其中建立一個與原始檔相同的名稱(basename)的新檔案。此外,該方法將複製其內容後將目標檔案的許可權與源進行同步。 如果要複製相同的檔案,它也會丟擲SameFileError。以下是演示**“如何在Python中複製檔案”的九種方法**。如果你依然在程式設計的世界裡迷茫,不知道自己的未來規劃可以加入我們的Python秋秋裙去784掉758文214字看看前輩們如何學習的!交流經驗!自己是一名高階python開發工程師,從基礎的python指令碼到web開發、爬蟲、django、資料探勘等,零基礎到專案實戰的資料都有整理。送給每一位python的小夥伴!分享一些學習的方法和需要注意的小細節

  1. shutil copyfile()方法
  2. shutil copy()方法
  3. shutil copyfileobj()方法
  4. shutil copy2()方法
  5. os popen方法
  6. os系統()方法
  7. Thread()方法
  8. 子程序呼叫()方法
  9. 子程序check_output()方法


1. Shutil Copyfile()方法

該方法只有在目標可寫時才將源的內容複製到目的地。如果您沒有寫入許可權,則會引發IOError。

它通過開啟輸入檔案進行閱讀,忽略其檔案型別。接下來,它不會對特殊檔案進行任何不同的處理,也不會將它們複製為新的特殊檔案。

所述的CopyFile()方法利用較低級別的功能的copyfileobj()的下方。它將檔名稱作為引數,開啟它們並將檔案控制代碼傳遞給copyfileobj()。該方法中有一個可選的第三個引數,您可以使用它來指定緩衝區長度。然後它將開啟檔案以讀取指定緩衝區大小的塊。但是,預設行為是一次性讀取整個檔案。

以下是有關**copyfile()**方法的要點。

  • 它將源的內容複製到名為目標的檔案。
  • 如果目的地不可寫,則複製操作將導致IOError異常。
  • 如果原始檔和目標檔案都相同,它將返回SameFileError。
  • 但是,如果目的地以不同的名稱預先存在,則副本將覆蓋其內容。
  • 如果目的地是目錄,則意味著此方法將不會複製到目錄,將會發生錯誤13。
  • 它不支援複製檔案,如字元或塊裝置和管道。

2. Shutil Copy()方法


copy()方法的功能類似於“CP”在Unix命令。這意味著如果目標是一個資料夾,那麼它將在其中建立一個與原始檔相同的名稱(basename)的新檔案。此外,該方法將複製其內容後將目標檔案的許可權與源進行同步。 如果要複製相同的檔案,它也會丟擲SameFileError。

3. Shutil Copyfileobj()方法

此方法將檔案複製到目標路徑或檔案物件。如果目標是檔案物件,則需要在呼叫**copyfileobj()**之後明確關閉它。它假設一個可選引數(緩衝區大小),您可以使用它來提供緩衝區長度。這是在複製過程中儲存在記憶體中的位元組數。系統使用的預設大小為16KB。

4. Shutil Copy2()方法

但是,copy2()方法的功能類似於copy()。但是,在複製資料的同時,也可以在元資料中新增訪問和修改時間。複製同一個檔案會導致SameFileError。

對於好奇 – Copymode()與Copystat()之間的區別。

5. Os Popen()方法

該方法建立一個指向或來自該命令的管道。它返回一個連線到管道的開啟的檔案物件。您可以根據檔案開啟模式(即'r'(預設)或'w')使用它進行讀取或寫入。

**模式 –**它可以是'r'(預設)或'w'。
**bufsize –**如果其值為0,則不會發生緩衝。如果設定為1,則在訪問檔案時將進行行緩衝。如果您提供的值大於1,則緩衝將以指定的緩衝區大小進行。但是,對於負值,系統將採用預設緩衝區大小。
對於Windows作業系統。

對於Linux作業系統。

6. Os System()方法

它是執行任何系統命令的最常見方式。使用**system()**方法,可以在subshell中呼叫任何命令。在內部,這種方法會呼叫標準的C庫函式。

此方法返回命令的退出狀態。

對於Windows作業系統。

對於Linux作業系統。

7.以Async方式使用執行緒庫的Python檔案複製

如果要以非同步方式複製檔案,請使用以下方法。在這裡,我們使用Python的執行緒模組在後臺運行復制操作。

使用此方法時,請確保採用鎖定以避免死鎖。如果您的應用程式正在使用多個執行緒讀取/寫入檔案,您可能會面對它。

8.使用子程序的Call()方法在Python中複製一個檔案
子程序模組提供了一個簡單的介面來處理子程序。它使我們能夠啟動子程序,附加到其輸入/輸出/錯誤管道,並檢索返回值。

子流程模組旨在替代傳統模組和功能,如*os.system,os.spawn ,os.popen ,popen2。。

它公開一個**call()**方法來呼叫系統命令來執行使用者任務。

9.使用子程序的Check_output()方法在Python中複製檔案

使用子程序的**check_output()**方法,可以執行外部命令或程式並捕獲其輸出。它還支援管道。

3. Shutil Copyfileobj()方法

此方法將檔案複製到目標路徑或檔案物件。如果目標是檔案物件,則需要在呼叫**copyfileobj()**之後明確關閉它。它假設一個可選引數(緩衝區大小),您可以使用它來提供緩衝區長度。這是在複製過程中儲存在記憶體中的位元組數。系統使用的預設大小為16KB。

4. Shutil Copy2()方法

但是,copy2()方法的功能類似於copy()。但是,在複製資料的同時,也可以在元資料中新增訪問和修改時間。複製同一個檔案會導致SameFileError。

對於好奇 – Copymode()與Copystat()之間的區別。

5. Os Popen()方法

該方法建立一個指向或來自該命令的管道。它返回一個連線到管道的開啟的檔案物件。您可以根據檔案開啟模式(即'r'(預設)或'w')使用它進行讀取或寫入。

**模式 –**它可以是'r'(預設)或'w'。
**bufsize –**如果其值為0,則不會發生緩衝。如果設定為1,則在訪問檔案時將進行行緩衝。如果您提供的值大於1,則緩衝將以指定的緩衝區大小進行。但是,對於負值,系統將採用預設緩衝區大小。
對於Windows作業系統。

對於Linux作業系統。

6. Os System()方法

它是執行任何系統命令的最常見方式。使用**system()**方法,可以在subshell中呼叫任何命令。在內部,這種方法會呼叫標準的C庫函式。

此方法返回命令的退出狀態。

對於Windows作業系統。

對於Linux作業系統。

7.以Async方式使用執行緒庫的Python檔案複製

如果要以非同步方式複製檔案,請使用以下方法。在這裡,我們使用Python的執行緒模組在後臺運行復制操作。

使用此方法時,請確保採用鎖定以避免死鎖。如果您的應用程式正在使用多個執行緒讀取/寫入檔案,您可能會面對它。

8.使用子程序的Call()方法在Python中複製一個檔案

子程序模組提供了一個簡單的介面來處理子程序。它使我們能夠啟動子程序,附加到其輸入/輸出/錯誤管道,並檢索返回值。

子流程模組旨在替代傳統模組和功能,如*os.system,os.spawn ,os.popen ,popen2。。

它公開一個**call()**方法來呼叫系統命令來執行使用者任務。

9.使用子程序的Check_output()方法在Python中複製檔案

使用子程序的**check_output()**方法,可以執行外部命令或程式並捕獲其輸出。它還支援管道。


總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。