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

Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析

 更新時(shí)間:2023年09月22日 10:11:52   作者:生有涯,知無(wú)涯  
這篇文章主要介紹了Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析,shutil模塊提供了許多關(guān)于文件和文件集合的高級(jí)操作,特別提供了支持文件復(fù)制和刪除的功能,需要的朋友可以參考下

1.文件夾與文件操作

copyfileobj(fsrc, fdst, length=16*1024): 將fsrc文件內(nèi)容復(fù)制至fdst文件,length為fsrc每次讀取的長(zhǎng)度,用做緩沖區(qū)大小

  • fsrc: 源文件
  • fdst: 復(fù)制至fdst文件
  • length: 緩沖區(qū)大小,即fsrc每次讀取的長(zhǎng)度
import shutil
f1 = open('shutil1.txt', 'r', encoding='utf-8')
f2 = open('shutil2.txt', 'a+', encoding='utf-8')
shutil.copyfileobj(f1, f2, length=512)

copyfile(src, dst): 將src文件內(nèi)容復(fù)制至dst文件

  • src: 源文件路徑
  • dst: 復(fù)制至dst文件,若dst文件不存在,將會(huì)生成一個(gè)dst文件;若存在將會(huì)被覆蓋
  • follow_symlinks:設(shè)置為True時(shí),若src為軟連接,則當(dāng)成文件復(fù)制;如果設(shè)置為False,復(fù)制軟連接。默認(rèn)為True。Python3新增參數(shù)
# copyfile(src, dst): 將src文件內(nèi)容復(fù)制至dst文件
import shutil
shutil.copy('shutil1.txt', 'shutil1_copy.txt')

copymode(src, dst): 將src文件權(quán)限復(fù)制至dst文件。文件內(nèi)容,所有者和組不受影響

  • src: 源文件路徑
  • dst: 將權(quán)限復(fù)制至dst文件,dst路徑必須是真實(shí)的路徑,并且文件必須存在,否則將會(huì)報(bào)文件找不到錯(cuò)誤
  • follow_symlinks:設(shè)置為False時(shí),src, dst皆為軟連接,可以復(fù)制軟連接權(quán)限,如果設(shè)置為True,則當(dāng)成普通文件復(fù)制權(quán)限。默認(rèn)為True。Python3新增參數(shù)
# copymode(src, dst)將src文件權(quán)限復(fù)制至dst文件。
import shutil
shutil.copymode("file.txt","file_copy.txt")

copy(src, dst): 將文件src復(fù)制至dst。dst可以是個(gè)目錄,會(huì)在該目錄下創(chuàng)建與src同名的文件,若該目錄下存在同名文件,將會(huì)報(bào)錯(cuò)提示已經(jīng)存在同名文件。權(quán)限會(huì)被一并復(fù)制。本質(zhì)是先后調(diào)用了copyfile與copymode而已

  • src:源文件路徑
  • dst:復(fù)制至dst文件夾或文件
  • follow_symlinks:設(shè)置為False時(shí),src, dst皆為軟連接,可以復(fù)制軟連接權(quán)限,如果設(shè)置為True,則當(dāng)成普通文件復(fù)制權(quán)限。默認(rèn)為True。Python3新增參數(shù)
# copy(src, dst)**: 將文件src復(fù)制至dst。dst可以是個(gè)目錄
import shutil
import os
shutil.copy("file.txt","file_copy.txt")
# 或者
shutil.copy("file.txt",os.path.join(os.getcwd(),"copy"))  # os.getcwd()獲取當(dāng)前工作目錄

copytree(src, dst, symlinks=False, ignore=None): 拷貝文檔樹(shù),將src文件夾里的所有內(nèi)容拷貝至dst文件夾

  • src:源文件夾
  • dst:復(fù)制至dst文件夾,該文件夾會(huì)自動(dòng)創(chuàng)建,需保證此文件夾不存在,否則將報(bào)錯(cuò)
  • symlinks:是否復(fù)制軟連接,True復(fù)制軟連接,F(xiàn)alse不復(fù)制,軟連接會(huì)被當(dāng)成文件復(fù)制過(guò)來(lái),默認(rèn)False
  • ignore:忽略模式,可傳入ignore_patterns()
  • copy_function:拷貝文件的方式,可以傳入一個(gè)可執(zhí)行的處理函數(shù),默認(rèn)為copy2,Python3新增參數(shù)
  • ignore_dangling_symlinks:sysmlinks設(shè)置為False時(shí),拷貝指向文件已刪除的軟連接時(shí),將會(huì)報(bào)錯(cuò),如果想消除這個(gè)異常,可以設(shè)置此值為True。默認(rèn)為False,Python3新增參數(shù)
  • ignore_patterns(*patterns): 忽略模式,用于配合copytree()方法,傳遞文件將會(huì)被忽略,不會(huì)被拷貝。patterns:文件名稱,元組
import shutil,os
folder1 = os.path.join(os.getcwd(),"aaa")
# bbb與ccc文件夾都可以不存在,會(huì)自動(dòng)創(chuàng)建
folder2 = os.path.join(os.getcwd(),"bbb","ccc")
# 將"abc.txt","bcd.txt"忽略,不復(fù)制
shutil.copytree(folder1,folder2,ignore=shutil.ignore_patterns("abc.txt","bcd.txt")

rmtree(path, ignore_errors=False, οnerrοr=None): 移除文檔樹(shù),將文件夾目錄刪除

  • ignore_errors:是否忽略錯(cuò)誤,默認(rèn)False
  • onerror:定義錯(cuò)誤處理函數(shù),需傳遞一個(gè)可執(zhí)行的處理函數(shù),該處理函數(shù)接收三個(gè)參數(shù):函數(shù)、路徑和excinfo
import shutil,os
folder1 = os.path.join(os.getcwd(),"aaa")
shutil.rmtree(folder1)

move(src, dst): 將src移動(dòng)至dst目錄下。若dst目錄不存在,則效果等同于src改名為dst。若dst目錄存在,將會(huì)把src文件夾的所有內(nèi)容移動(dòng)至該目錄下面

  • src:源文件夾或文件
  • dst:移動(dòng)至dst文件夾,或?qū)⑽募拿麨閐st文件。如果src為文件夾,而dst為文件將會(huì)報(bào)錯(cuò)
  • copy_function:拷貝文件的方式,可以傳入一個(gè)可執(zhí)行的處理函數(shù)。默認(rèn)為copy2,Python3新增參數(shù)
import shutil,os
# 示例一,將src文件夾移動(dòng)至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
folder1 = os.path.join(os.getcwd(),"aaa")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(folder1, folder2)
# 示例二,將src文件移動(dòng)至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
file1 = os.path.join(os.getcwd(),"aaa.txt")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(file1, folder2)
# 示例三,將src文件重命名為dst文件(dst文件存在,將會(huì)覆蓋)
file1 = os.path.join(os.getcwd(),"aaa.txt")
file2 = os.path.join(os.getcwd(),"bbb.txt")
shutil.move(file1, file2)

2.歸檔操作

shutil還提供了創(chuàng)建和讀取壓縮和存檔文件的高級(jí)使用程序。內(nèi)部實(shí)現(xiàn)主要依靠的是zipfile和tarfile模塊

make_archive(base_name, format, root_dir, …): 生成壓縮文件

  • base_name:壓縮文件的文件名,不允許有擴(kuò)展名,因?yàn)闀?huì)根據(jù)壓縮格式生成相應(yīng)的擴(kuò)展名
  • format:壓縮格式:“zip”, “tar”, “bztar”,“gztar”
  • root_dir:將指定文件夾進(jìn)行壓縮
# 將當(dāng)前工作目錄下的make_archive文件夾里面的內(nèi)容打包zip格式,保存到當(dāng)前工作目錄下(并給壓縮包起名為shutil1)
import shutil
import os
base_name = os.path.join(os.getcwd(), 'shutil1')  # 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時(shí),則保存至當(dāng)前目錄,否則保存至指定路徑。
format = 'zip'  # 壓縮包種類:“zip”, “tar”, “bztar”,“gztar”
root_dir = os.path.join(os.getcwd(), 'make_archive')  # 要壓縮的文件夾路徑
shutil.make_archive(base_name, format, root_dir)
# 將當(dāng)前工作目錄下的make_archive文件夾里面的內(nèi)容打包zip格式,起名為abc,保存到當(dāng)前工作目錄下(沒(méi)有拼接路徑所以默認(rèn)當(dāng)前工作目錄)
import shutil
import os
base_name = 'abc'  # 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時(shí),則保存至當(dāng)前目錄,否則保存至指定路徑。
format = 'zip'  # 壓縮包種類:“zip”, “tar”, “bztar”,“gztar”
root_dir = os.path.join(os.getcwd(), 'make_archive')  # 要壓縮的文件夾路徑
shutil.make_archive(base_name, format, root_dir)
  • get_archive_formats(): 獲取支持的壓縮文件格式。目前支持的有:tar、zip、gztar、bztar。在Python3還多支持一種格式xztar

unpack_archive(filename, extract_dir=None, format=None): 解壓操作。Python3新增方法

  • filename:文件路徑
  • extract_dir:解壓至的文件夾路徑。文件夾可以不存在,會(huì)自動(dòng)生成
  • format:解壓格式,默認(rèn)為None,會(huì)根據(jù)擴(kuò)展名自動(dòng)選擇解壓格式
# 將當(dāng)前目下下的abc.zip解壓縮到當(dāng)前目錄并將解壓縮后的文件夾更名為aaa
import shutil
import os
zip_path = os.path.join(os.getcwd(), 'abc.zip')
extract_dir = os.path.join(os.getcwd(), 'aaa')
shutil.unpack_archive(zip_path, extract_dir)
  • get_unpack_formats(): 獲取支持的解壓文件格式。目前支持的有:tar、zip、gztar、bztar和xztar。Python3新增方法

到此這篇關(guān)于Python中的shutil標(biāo)準(zhǔn)庫(kù)用法解析的文章就介紹到這了,更多相關(guān)Python的shutil內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tensorflow實(shí)現(xiàn)多GPU并行方式

    Tensorflow實(shí)現(xiàn)多GPU并行方式

    今天小編就為大家分享一篇Tensorflow實(shí)現(xiàn)多GPU并行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯

    python3調(diào)用百度翻譯API實(shí)現(xiàn)實(shí)時(shí)翻譯

    這篇文章主要為大家詳細(xì)介紹了python3調(diào)用百度翻譯API,實(shí)現(xiàn)實(shí)時(shí)翻譯,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python封裝adb命令的操作詳解

    Python封裝adb命令的操作詳解

    在日常的 Android 項(xiàng)目開(kāi)發(fā)中,我們通常會(huì)使用 adb 命令來(lái)獲取連接設(shè)備的內(nèi)存、屏幕、CPU等信息,這些信息的獲取,每次都在command 中輸入相關(guān)命令進(jìn)行重復(fù)的操作讓人感到厭倦和疲乏,現(xiàn)在,可以嘗試使用 python 來(lái)簡(jiǎn)化這一部分工作,所以本文介紹了Python封裝adb命令的操作
    2024-01-01
  • 使用Python通過(guò)QQ郵箱發(fā)送電子郵件的示例代碼

    使用Python通過(guò)QQ郵箱發(fā)送電子郵件的示例代碼

    本文介紹如何使用 Python 的 smtplib 和 email 庫(kù)通過(guò) QQ 郵箱發(fā)送電子郵件,文中有詳細(xì)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 利用python實(shí)現(xiàn)逐步回歸

    利用python實(shí)現(xiàn)逐步回歸

    今天小編就為大家分享一篇利用python實(shí)現(xiàn)逐步回歸,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • django加載本地html的方法

    django加載本地html的方法

    今天小編就為大家分享一篇django加載本地html的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • Python實(shí)現(xiàn)中英文全文搜索的示例

    Python實(shí)現(xiàn)中英文全文搜索的示例

    這篇文章主要介紹了Python實(shí)現(xiàn)中英文全文搜索的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-12-12
  • 用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多線程TCP服務(wù)器的教程

    用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多線程TCP服務(wù)器的教程

    這篇文章主要介紹了用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的多線程TCP服務(wù)器的教程,示例的運(yùn)行環(huán)境為Windows操作系統(tǒng),需要的朋友可以參考下
    2015-05-05
  • python 算法題——快樂(lè)數(shù)的多種解法

    python 算法題——快樂(lè)數(shù)的多種解法

    看書,看視頻都可以幫助你學(xué)習(xí)代碼,但都只是輔助作用,學(xué)好 Python,最重要的還是 多敲代碼,多刷題。本文講述算法題快樂(lè)數(shù)的多種解法,幫你打開(kāi)思路
    2021-05-05
  • python自動(dòng)打開(kāi)瀏覽器下載zip并提取內(nèi)容寫入excel

    python自動(dòng)打開(kāi)瀏覽器下載zip并提取內(nèi)容寫入excel

    這篇文章主要給大家介紹了關(guān)于python自動(dòng)打開(kāi)瀏覽器下載zip并提取內(nèi)容寫入excel的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論