以下是演示“如何在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,


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()方法,可以運行外部命令或程式并捕獲其輸出,它還支持管道,

最后:下方這份完整的【自動化測驗】學習教程已經整理上傳完成,朋友們如果需要可以自行免費領取 【保證100%免費】有需要的小伙伴可以加裙:11347,25192免費領取

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552213.html
標籤:其他
上一篇:面試了一個32歲的程式員,一個細節就看出來是培訓班的····
下一篇:返回列表
