轉載 python文件複製的方法

Python複製文件的9種方法

51Testing軟件測試網shell

17-11-16 14:13

  如下是演示「如何在Python中複製文件」的九種方法異步

  1.shutil copyfile()方法函數

  2.shutil copy()方法測試

  3.shutil copyfileobj()方法spa

  4.shutil copy2()方法操作系統

  5.os popen方法線程

  6.os系統()方法3d

  7.Thread()方法對象

  8.子進程調用()方法blog

  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()方法,能夠運行外部命令或程序並捕獲其輸出。它還支持管道。

  End.

更多文章請前往51Testing軟件測試網。

相關文章
相關標籤/搜索