欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Python復(fù)制文件的9種方法總結(jié)

 更新時(shí)間:2019年09月02日 09:40:16   作者:編程搬運(yùn)工  
這篇文章主要給大家總結(jié)介紹了關(guān)于利用Python復(fù)制文件的9種方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

以下是演示**“如何在Python中復(fù)制文件”的九種方法**。

  1. shutil copyfile()方法
  2. shutil copy()方法
  3. shutil copyfileobj()方法
  4. shutil copy2()方法
  5. os popen方法
  6. os系統(tǒng)()方法
  7. Thread()方法
  8. 子進(jìn)程調(diào)用()方法
  9. 子進(jìn)程check_output()方法


1. Shutil Copyfile()方法

該方法只有在目標(biāo)可寫時(shí)才將源的內(nèi)容復(fù)制到目的地。如果您沒有寫入權(quán)限,則會引發(fā)IOError。

它通過打開輸入文件進(jìn)行閱讀,忽略其文件類型。接下來,它不會對特殊文件進(jìn)行任何不同的處理,也不會將它們復(fù)制為新的特殊文件。

所述的CopyFile()方法利用較低級別的功能的copyfileobj()的下方。它將文件名稱作為參數(shù),打開它們并將文件句柄傳遞給copyfileobj()。該方法中有一個(gè)可選的第三個(gè)參數(shù),您可以使用它來指定緩沖區(qū)長度。然后它將打開文件以讀取指定緩沖區(qū)大小的塊。但是,默認(rèn)行為是一次性讀取整個(gè)文件。

以下是有關(guān)**copyfile()**方法的要點(diǎn)。

  • 它將源的內(nèi)容復(fù)制到名為目標(biāo)的文件。
  • 如果目的地不可寫,則復(fù)制操作將導(dǎo)致IOError異常。
  • 如果源文件和目標(biāo)文件都相同,它將返回SameFileError。
  • 但是,如果目的地以不同的名稱預(yù)先存在,則副本將覆蓋其內(nèi)容。
  • 如果目的地是目錄,則意味著此方法將不會復(fù)制到目錄,將會發(fā)生錯(cuò)誤13。
  • 它不支持復(fù)制文件,如字符或塊設(shè)備和管道。


2. Shutil Copy()方法


copy()方法的功能類似于“CP”在Unix命令。這意味著如果目標(biāo)是一個(gè)文件夾,那么它將在其中創(chuàng)建一個(gè)與源文件相同的名稱(basename)的新文件。此外,該方法將復(fù)制其內(nèi)容后將目標(biāo)文件的權(quán)限與源進(jìn)行同步。 如果要復(fù)制相同的文件,它也會拋出SameFileError。以下是演示**“如何在Python中復(fù)制文件”的九種方法**。如果你依然在編程的世界里迷茫,不知道自己的未來規(guī)劃可以加入我們的Python秋秋裙去784掉758文214字看看前輩們?nèi)绾螌W(xué)習(xí)的!交流經(jīng)驗(yàn)!自己是一名高級python開發(fā)工程師,從基礎(chǔ)的python腳本到web開發(fā)、爬蟲、django、數(shù)據(jù)挖掘等,零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)的資料都有整理。送給每一位python的小伙伴!分享一些學(xué)習(xí)的方法和需要注意的小細(xì)節(jié)

  1. shutil copyfile()方法
  2. shutil copy()方法
  3. shutil copyfileobj()方法
  4. shutil copy2()方法
  5. os popen方法
  6. os系統(tǒng)()方法
  7. Thread()方法
  8. 子進(jìn)程調(diào)用()方法
  9. 子進(jìn)程check_output()方法


1. Shutil Copyfile()方法

該方法只有在目標(biāo)可寫時(shí)才將源的內(nèi)容復(fù)制到目的地。如果您沒有寫入權(quán)限,則會引發(fā)IOError。

它通過打開輸入文件進(jìn)行閱讀,忽略其文件類型。接下來,它不會對特殊文件進(jìn)行任何不同的處理,也不會將它們復(fù)制為新的特殊文件。

所述的CopyFile()方法利用較低級別的功能的copyfileobj()的下方。它將文件名稱作為參數(shù),打開它們并將文件句柄傳遞給copyfileobj()。該方法中有一個(gè)可選的第三個(gè)參數(shù),您可以使用它來指定緩沖區(qū)長度。然后它將打開文件以讀取指定緩沖區(qū)大小的塊。但是,默認(rèn)行為是一次性讀取整個(gè)文件。

以下是有關(guān)**copyfile()**方法的要點(diǎn)。

  • 它將源的內(nèi)容復(fù)制到名為目標(biāo)的文件。
  • 如果目的地不可寫,則復(fù)制操作將導(dǎo)致IOError異常。
  • 如果源文件和目標(biāo)文件都相同,它將返回SameFileError。
  • 但是,如果目的地以不同的名稱預(yù)先存在,則副本將覆蓋其內(nèi)容。
  • 如果目的地是目錄,則意味著此方法將不會復(fù)制到目錄,將會發(fā)生錯(cuò)誤13。
  • 它不支持復(fù)制文件,如字符或塊設(shè)備和管道。

2. Shutil Copy()方法


copy()方法的功能類似于“CP”在Unix命令。這意味著如果目標(biāo)是一個(gè)文件夾,那么它將在其中創(chuàng)建一個(gè)與源文件相同的名稱(basename)的新文件。此外,該方法將復(fù)制其內(nèi)容后將目標(biāo)文件的權(quán)限與源進(jìn)行同步。 如果要復(fù)制相同的文件,它也會拋出SameFileError。

3. Shutil Copyfileobj()方法

此方法將文件復(fù)制到目標(biāo)路徑或文件對象。如果目標(biāo)是文件對象,則需要在調(diào)用**copyfileobj()**之后明確關(guān)閉它。它假設(shè)一個(gè)可選參數(shù)(緩沖區(qū)大?。?,您可以使用它來提供緩沖區(qū)長度。這是在復(fù)制過程中保存在內(nèi)存中的字節(jié)數(shù)。系統(tǒng)使用的默認(rèn)大小為16KB。

4. Shutil Copy2()方法

但是,copy2()方法的功能類似于copy()。但是,在復(fù)制數(shù)據(jù)的同時(shí),也可以在元數(shù)據(jù)中添加訪問和修改時(shí)間。復(fù)制同一個(gè)文件會導(dǎo)致SameFileError。

對于好奇 – Copymode()與Copystat()之間的區(qū)別。

5. Os Popen()方法

該方法創(chuàng)建一個(gè)指向或來自該命令的管道。它返回一個(gè)連接到管道的打開的文件對象。您可以根據(jù)文件打開模式(即'r'(默認(rèn))或'w')使用它進(jìn)行讀取或?qū)懭搿?/p>

**模式 –**它可以是'r'(默認(rèn))或'w'。
**bufsize –**如果其值為0,則不會發(fā)生緩沖。如果設(shè)置為1,則在訪問文件時(shí)將進(jìn)行行緩沖。如果您提供的值大于1,則緩沖將以指定的緩沖區(qū)大小進(jìn)行。但是,對于負(fù)值,系統(tǒng)將采用默認(rèn)緩沖區(qū)大小。
對于Windows操作系統(tǒng)。

對于Linux操作系統(tǒng)。

6. Os System()方法

它是運(yùn)行任何系統(tǒng)命令的最常見方式。使用**system()**方法,可以在subshell中調(diào)用任何命令。在內(nèi)部,這種方法會調(diào)用標(biāo)準(zhǔn)的C庫函數(shù)。

此方法返回命令的退出狀態(tài)。

對于Windows操作系統(tǒng)。

對于Linux操作系統(tǒng)。

7.以Async方式使用線程庫的Python文件復(fù)制

如果要以異步方式復(fù)制文件,請使用以下方法。在這里,我們使用Python的線程模塊在后臺運(yùn)行復(fù)制操作。

使用此方法時(shí),請確保采用鎖定以避免死鎖。如果您的應(yīng)用程序正在使用多個(gè)線程讀取/寫入文件,您可能會面對它。

8.使用子進(jìn)程的Call()方法在Python中復(fù)制一個(gè)文件
子進(jìn)程模塊提供了一個(gè)簡單的界面來處理子進(jìn)程。它使我們能夠啟動子進(jìn)程,附加到其輸入/輸出/錯(cuò)誤管道,并檢索返回值。

子流程模塊旨在替代傳統(tǒng)模塊和功能,如*os.system,os.spawn ,os.popen ,popen2。。

它公開一個(gè)**call()**方法來調(diào)用系統(tǒng)命令來執(zhí)行用戶任務(wù)。

9.使用子進(jìn)程的Check_output()方法在Python中復(fù)制文件

使用子進(jìn)程的**check_output()**方法,可以運(yùn)行外部命令或程序并捕獲其輸出。它還支持管道。

3. Shutil Copyfileobj()方法

此方法將文件復(fù)制到目標(biāo)路徑或文件對象。如果目標(biāo)是文件對象,則需要在調(diào)用**copyfileobj()**之后明確關(guān)閉它。它假設(shè)一個(gè)可選參數(shù)(緩沖區(qū)大?。?,您可以使用它來提供緩沖區(qū)長度。這是在復(fù)制過程中保存在內(nèi)存中的字節(jié)數(shù)。系統(tǒng)使用的默認(rèn)大小為16KB。

4. Shutil Copy2()方法

但是,copy2()方法的功能類似于copy()。但是,在復(fù)制數(shù)據(jù)的同時(shí),也可以在元數(shù)據(jù)中添加訪問和修改時(shí)間。復(fù)制同一個(gè)文件會導(dǎo)致SameFileError。

對于好奇 – Copymode()與Copystat()之間的區(qū)別。

5. Os Popen()方法

該方法創(chuàng)建一個(gè)指向或來自該命令的管道。它返回一個(gè)連接到管道的打開的文件對象。您可以根據(jù)文件打開模式(即'r'(默認(rèn))或'w')使用它進(jìn)行讀取或?qū)懭搿?/p>

**模式 –**它可以是'r'(默認(rèn))或'w'。
**bufsize –**如果其值為0,則不會發(fā)生緩沖。如果設(shè)置為1,則在訪問文件時(shí)將進(jìn)行行緩沖。如果您提供的值大于1,則緩沖將以指定的緩沖區(qū)大小進(jìn)行。但是,對于負(fù)值,系統(tǒng)將采用默認(rèn)緩沖區(qū)大小。
對于Windows操作系統(tǒng)。

對于Linux操作系統(tǒng)。

6. Os System()方法

它是運(yùn)行任何系統(tǒng)命令的最常見方式。使用**system()**方法,可以在subshell中調(diào)用任何命令。在內(nèi)部,這種方法會調(diào)用標(biāo)準(zhǔn)的C庫函數(shù)。

此方法返回命令的退出狀態(tài)。

對于Windows操作系統(tǒng)。

對于Linux操作系統(tǒng)。

7.以Async方式使用線程庫的Python文件復(fù)制

如果要以異步方式復(fù)制文件,請使用以下方法。在這里,我們使用Python的線程模塊在后臺運(yùn)行復(fù)制操作。

使用此方法時(shí),請確保采用鎖定以避免死鎖。如果您的應(yīng)用程序正在使用多個(gè)線程讀取/寫入文件,您可能會面對它。

8.使用子進(jìn)程的Call()方法在Python中復(fù)制一個(gè)文件

子進(jìn)程模塊提供了一個(gè)簡單的界面來處理子進(jìn)程。它使我們能夠啟動子進(jìn)程,附加到其輸入/輸出/錯(cuò)誤管道,并檢索返回值。

子流程模塊旨在替代傳統(tǒng)模塊和功能,如*os.system,os.spawn ,os.popen ,popen2。。

它公開一個(gè)**call()**方法來調(diào)用系統(tǒng)命令來執(zhí)行用戶任務(wù)。

9.使用子進(jìn)程的Check_output()方法在Python中復(fù)制文件

使用子進(jìn)程的**check_output()**方法,可以運(yùn)行外部命令或程序并捕獲其輸出。它還支持管道。


總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes

    解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?t

    這篇文章主要給大家介紹了關(guān)于解決Python報(bào)錯(cuò):ValueError:operands?could?not?be?broadcast?together?with?shapes的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Python中字符編碼簡介、方法及使用建議

    Python中字符編碼簡介、方法及使用建議

    這篇文章主要介紹了Python中字符編碼簡介、方法及使用建議,需要的朋友可以參考下
    2015-01-01
  • python列表推導(dǎo)和生成器表達(dá)式知識點(diǎn)總結(jié)

    python列表推導(dǎo)和生成器表達(dá)式知識點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是關(guān)于python列表推導(dǎo)和生成器表達(dá)式的相關(guān)知識點(diǎn)內(nèi)容,需要的朋友們可以參考下。
    2020-01-01
  • Python中的main函數(shù)與import用法

    Python中的main函數(shù)與import用法

    這篇文章主要介紹了Python中的main函數(shù)與import用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python實(shí)現(xiàn)環(huán)形鏈表

    Python實(shí)現(xiàn)環(huán)形鏈表

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)環(huán)形鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解Python類和對象內(nèi)容

    詳解Python類和對象內(nèi)容

    Python遵循面向?qū)ο蟮木幊谭妒?。它處理聲明python類,從它們創(chuàng)建對象并與用戶交互。在面向?qū)ο蟮恼Z言中,程序被分成獨(dú)立的對象,或者你可以說成幾個(gè)小程序。每個(gè)對象代表應(yīng)用程序的不同部分,它們可以相互通信。類是對客觀世界中事物得抽象,而對象是類實(shí)例化后的實(shí)體
    2021-06-06
  • 在Python中使用base64模塊處理字符編碼的教程

    在Python中使用base64模塊處理字符編碼的教程

    這篇文章主要介紹了在Python中使用base64模塊處理字符編碼的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • Python中將文件從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器的4種方法

    Python中將文件從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器的4種方法

    Python中將文件從一個(gè)服務(wù)器復(fù)制到另一個(gè)服務(wù)器通常涉及到網(wǎng)絡(luò)傳輸,這個(gè)過程可以通過多種方式實(shí)現(xiàn),本文主要為大家介紹了4種常用方法,需要的可以參考下
    2024-10-10
  • python測試框架unittest和pytest區(qū)別

    python測試框架unittest和pytest區(qū)別

    這篇文章主要介紹了python測試框架unittest和pytest區(qū)別,幫助大家更好的理解和學(xué)習(xí)使用python進(jìn)行自動化測試,感興趣的朋友可以了解下
    2021-04-04
  • python中的不可變數(shù)據(jù)類型與可變數(shù)據(jù)類型詳解

    python中的不可變數(shù)據(jù)類型與可變數(shù)據(jù)類型詳解

    探尋python的數(shù)據(jù)類型是否可變,也可以更好的理解python對內(nèi)存的使用情況,下面這篇文章主要給大家介紹了關(guān)于python中不可變數(shù)據(jù)類型與可變數(shù)據(jù)類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-09-09

最新評論