十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
小編給大家分享一下如何利用Python復(fù)制文件,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

Python主要應(yīng)用于:1、Web開(kāi)發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲(chóng);4、嵌入式應(yīng)用開(kāi)發(fā);5、游戲開(kāi)發(fā);6、桌面應(yīng)用開(kāi)發(fā)。
以下是演示**“如何在Python中復(fù)制文件”的九種方法**。
shutil copyfile()方法
shutil copy()方法
shutil copyfileobj()方法
shutil copy2()方法
os popen方法
os系統(tǒng)()方法
Thread()方法
子進(jìn)程調(diào)用()方法
子進(jìn)程check_output()方法

1. Shutil Copyfile()方法
該方法只有在目標(biāo)可寫時(shí)才將源的內(nèi)容復(fù)制到目的地。如果您沒(méi)有寫入權(quán)限,則會(huì)引發(fā)IOError。
它通過(guò)打開(kāi)輸入文件進(jìn)行閱讀,忽略其文件類型。接下來(lái),它不會(huì)對(duì)特殊文件進(jìn)行任何不同的處理,也不會(huì)將它們復(fù)制為新的特殊文件。
所述的CopyFile()方法利用較低級(jí)別的功能的copyfileobj()的下方。它將文件名稱作為參數(shù),打開(kāi)它們并將文件句柄傳遞給copyfileobj()。該方法中有一個(gè)可選的第三個(gè)參數(shù),您可以使用它來(lái)指定緩沖區(qū)長(zhǎng)度。然后它將打開(kāi)文件以讀取指定緩沖區(qū)大小的塊。但是,默認(rèn)行為是一次性讀取整個(gè)文件。

以下是有關(guān)**copyfile()**方法的要點(diǎn)。
它將源的內(nèi)容復(fù)制到名為目標(biāo)的文件。
如果目的地不可寫,則復(fù)制操作將導(dǎo)致IOError異常。
如果源文件和目標(biāo)文件都相同,它將返回SameFileError。
但是,如果目的地以不同的名稱預(yù)先存在,則副本將覆蓋其內(nèi)容。
如果目的地是目錄,則意味著此方法將不會(huì)復(fù)制到目錄,將會(huì)發(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ù)制相同的文件,它也會(huì)拋出SameFileError。以下是演示**“如何在Python中復(fù)制文件”的九種方法**。如果你依然在編程的世界里迷茫,不知道自己的未來(lái)規(guī)劃可以加入我們的Python秋秋裙去784掉758文214字看看前輩們?nèi)绾螌W(xué)習(xí)的!交流經(jīng)驗(yàn)!自己是一名高級(jí)python開(kāi)發(fā)工程師,從基礎(chǔ)的python腳本到web開(kāi)發(fā)、爬蟲(chóng)、django、數(shù)據(jù)挖掘等,零基礎(chǔ)到項(xiàng)目實(shí)戰(zhàn)的資料都有整理。送給每一位python的小伙伴!分享一些學(xué)習(xí)的方法和需要注意的小細(xì)節(jié)
shutil copyfile()方法
shutil copy()方法
shutil copyfileobj()方法
shutil copy2()方法
os popen方法
os系統(tǒng)()方法
Thread()方法
子進(jìn)程調(diào)用()方法
子進(jìn)程check_output()方法

1. Shutil Copyfile()方法
該方法只有在目標(biāo)可寫時(shí)才將源的內(nèi)容復(fù)制到目的地。如果您沒(méi)有寫入權(quán)限,則會(huì)引發(fā)IOError。
它通過(guò)打開(kāi)輸入文件進(jìn)行閱讀,忽略其文件類型。接下來(lái),它不會(huì)對(duì)特殊文件進(jìn)行任何不同的處理,也不會(huì)將它們復(fù)制為新的特殊文件。
所述的CopyFile()方法利用較低級(jí)別的功能的copyfileobj()的下方。它將文件名稱作為參數(shù),打開(kāi)它們并將文件句柄傳遞給copyfileobj()。該方法中有一個(gè)可選的第三個(gè)參數(shù),您可以使用它來(lái)指定緩沖區(qū)長(zhǎng)度。然后它將打開(kāi)文件以讀取指定緩沖區(qū)大小的塊。但是,默認(rèn)行為是一次性讀取整個(gè)文件。

以下是有關(guān)**copyfile()**方法的要點(diǎn)。
它將源的內(nèi)容復(fù)制到名為目標(biāo)的文件。
如果目的地不可寫,則復(fù)制操作將導(dǎo)致IOError異常。
如果源文件和目標(biāo)文件都相同,它將返回SameFileError。
但是,如果目的地以不同的名稱預(yù)先存在,則副本將覆蓋其內(nèi)容。
如果目的地是目錄,則意味著此方法將不會(huì)復(fù)制到目錄,將會(huì)發(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ù)制相同的文件,它也會(huì)拋出SameFileError。


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

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

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

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

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

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

6. Os System()方法
它是運(yùn)行任何系統(tǒng)命令的最常見(jiàn)方式。使用**system()**方法,可以在subshell中調(diào)用任何命令。在內(nèi)部,這種方法會(huì)調(diào)用標(biāo)準(zhǔn)的C庫(kù)函數(shù)。
此方法返回命令的退出狀態(tài)。
對(duì)于Windows操作系統(tǒng)。

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

7.以Async方式使用線程庫(kù)的Python文件復(fù)制
如果要以異步方式復(fù)制文件,請(qǐng)使用以下方法。在這里,我們使用Python的線程模塊在后臺(tái)運(yùn)行復(fù)制操作。
使用此方法時(shí),請(qǐng)確保采用鎖定以避免死鎖。如果您的應(yīng)用程序正在使用多個(gè)線程讀取/寫入文件,您可能會(huì)面對(duì)它。

8.使用子進(jìn)程的Call()方法在Python中復(fù)制一個(gè)文件
子進(jìn)程模塊提供了一個(gè)簡(jiǎn)單的界面來(lái)處理子進(jìn)程。它使我們能夠啟動(dòng)子進(jìn)程,附加到其輸入/輸出/錯(cuò)誤管道,并檢索返回值。
子流程模塊旨在替代傳統(tǒng)模塊和功能,如*os.system,os.spawn ,os.popen ,popen2。。
它公開(kāi)一個(gè)**call()**方法來(lái)調(diào)用系統(tǒng)命令來(lái)執(zhí)行用戶任務(wù)。

9.使用子進(jìn)程的Check_output()方法在Python中復(fù)制文件
使用子進(jìn)程的**check_output()**方法,可以運(yùn)行外部命令或程序并捕獲其輸出。它還支持管道。



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

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

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

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

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

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

6. Os System()方法
它是運(yùn)行任何系統(tǒng)命令的最常見(jiàn)方式。使用**system()**方法,可以在subshell中調(diào)用任何命令。在內(nèi)部,這種方法會(huì)調(diào)用標(biāo)準(zhǔn)的C庫(kù)函數(shù)。
此方法返回命令的退出狀態(tài)。
對(duì)于Windows操作系統(tǒng)。

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

7.以Async方式使用線程庫(kù)的Python文件復(fù)制
如果要以異步方式復(fù)制文件,請(qǐng)使用以下方法。在這里,我們使用Python的線程模塊在后臺(tái)運(yùn)行復(fù)制操作。
使用此方法時(shí),請(qǐng)確保采用鎖定以避免死鎖。如果您的應(yīng)用程序正在使用多個(gè)線程讀取/寫入文件,您可能會(huì)面對(duì)它。

8.使用子進(jìn)程的Call()方法在Python中復(fù)制一個(gè)文件
子進(jìn)程模塊提供了一個(gè)簡(jiǎn)單的界面來(lái)處理子進(jìn)程。它使我們能夠啟動(dòng)子進(jìn)程,附加到其輸入/輸出/錯(cuò)誤管道,并檢索返回值。
子流程模塊旨在替代傳統(tǒng)模塊和功能,如*os.system,os.spawn ,os.popen ,popen2。。
它公開(kāi)一個(gè)**call()**方法來(lái)調(diào)用系統(tǒng)命令來(lái)執(zhí)行用戶任務(wù)。

9.使用子進(jìn)程的Check_output()方法在Python中復(fù)制文件
使用子進(jìn)程的**check_output()**方法,可以運(yùn)行外部命令或程序并捕獲其輸出。它還支持管道。

以上是“如何利用Python復(fù)制文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!