Python複製檔案的9種方法

2021-10-18 07:35:09 字數 2930 閱讀 3402

以下是演示「如何在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()方法,可以執行外部命令或程式並捕獲其輸出。它還支援管道。

精彩的內容要和朋友分享哦

用Python複製檔案的九種方法

以下是演示 如何在python中複製檔案 的九種方法。shutil copyfile 方法shutil copy 方法shutil copyfileobj 方法shutil copy2 方法os popen方法os系統 方法thread 方法子程序呼叫 方法子程序check output 方法 該方...

php獲取檔案字尾的9種方法

獲取檔案字尾的9種方法12 3456 78910 1112 1314 1516 1718 1920 2122 2324 2526 2728 2930 3132 3334 3536 3738 3940 4142 4344 4546 4748 4950 5152 5354 5556 5758 5960 ...

php獲取檔案字尾的9種方法

created by phpstorm.user liuft date 2016 3 7 time 15 46 第一種 function get extension file 第二種 function get extension file 第三種 functqdogfzeion get extens...