最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的shutil標準庫用法解析

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

1.文件夾與文件操作

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

  • fsrc: 源文件
  • fdst: 復制至fdst文件
  • length: 緩沖區(qū)大小,即fsrc每次讀取的長度
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文件內容復制至dst文件

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

copymode(src, dst): 將src文件權限復制至dst文件。文件內容,所有者和組不受影響

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

copy(src, dst): 將文件src復制至dst。dst可以是個目錄,會在該目錄下創(chuàng)建與src同名的文件,若該目錄下存在同名文件,將會報錯提示已經存在同名文件。權限會被一并復制。本質是先后調用了copyfile與copymode而已

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

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

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

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

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

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

  • src:源文件夾或文件
  • dst:移動至dst文件夾,或將文件改名為dst文件。如果src為文件夾,而dst為文件將會報錯
  • copy_function:拷貝文件的方式,可以傳入一個可執(zhí)行的處理函數(shù)。默認為copy2,Python3新增參數(shù)
import shutil,os
# 示例一,將src文件夾移動至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
folder1 = os.path.join(os.getcwd(),"aaa")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(folder1, folder2)
# 示例二,將src文件移動至dst文件夾下面,如果bbb文件夾不存在,則變成了重命名操作
file1 = os.path.join(os.getcwd(),"aaa.txt")
folder2 = os.path.join(os.getcwd(),"bbb")
shutil.move(file1, folder2)
# 示例三,將src文件重命名為dst文件(dst文件存在,將會覆蓋)
file1 = os.path.join(os.getcwd(),"aaa.txt")
file2 = os.path.join(os.getcwd(),"bbb.txt")
shutil.move(file1, file2)

2.歸檔操作

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

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

  • base_name:壓縮文件的文件名,不允許有擴展名,因為會根據(jù)壓縮格式生成相應的擴展名
  • format:壓縮格式:“zip”, “tar”, “bztar”,“gztar”
  • root_dir:將指定文件夾進行壓縮
# 將當前工作目錄下的make_archive文件夾里面的內容打包zip格式,保存到當前工作目錄下(并給壓縮包起名為shutil1)
import shutil
import os
base_name = os.path.join(os.getcwd(), 'shutil1')  # 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,則保存至當前目錄,否則保存至指定路徑。
format = 'zip'  # 壓縮包種類:“zip”, “tar”, “bztar”,“gztar”
root_dir = os.path.join(os.getcwd(), 'make_archive')  # 要壓縮的文件夾路徑
shutil.make_archive(base_name, format, root_dir)
# 將當前工作目錄下的make_archive文件夾里面的內容打包zip格式,起名為abc,保存到當前工作目錄下(沒有拼接路徑所以默認當前工作目錄)
import shutil
import os
base_name = 'abc'  # 壓縮包的文件名,也可以是壓縮包的路徑。只是文件名時,則保存至當前目錄,否則保存至指定路徑。
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:解壓至的文件夾路徑。文件夾可以不存在,會自動生成
  • format:解壓格式,默認為None,會根據(jù)擴展名自動選擇解壓格式
# 將當前目下下的abc.zip解壓縮到當前目錄并將解壓縮后的文件夾更名為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新增方法

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

相關文章

  • Django 實現(xiàn)外鍵去除自動添加的后綴‘_id’

    Django 實現(xiàn)外鍵去除自動添加的后綴‘_id’

    今天小編就為大家分享一篇Django 實現(xiàn)外鍵去除自動添加的后綴‘_id’,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • python去掉空格的一些常用方式

    python去掉空格的一些常用方式

    處理字符串時經常要定制化去掉無用的空格,python 中要么用存在的常規(guī)方法,或者用正則處理,下面這篇文章主要給大家介紹了python去掉空格的一些常用方式,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • python 生成圖形驗證碼的方法示例

    python 生成圖形驗證碼的方法示例

    日常在網(wǎng)站使用過程中經常遇到圖形驗證,這篇文章主要介紹了python 生成圖形驗證碼的方法示例,非常具有實用價值,需要的朋友可以參考下
    2018-11-11
  • 使用Python進行大規(guī)模數(shù)據(jù)處理和分析

    使用Python進行大規(guī)模數(shù)據(jù)處理和分析

    大規(guī)模數(shù)據(jù)處理和分析旨在從海量數(shù)據(jù)中提取有用的信息和見解,以支持決策制定和業(yè)務發(fā)展,Python憑借其豐富的生態(tài)系統(tǒng)和強大的庫,為處理和分析數(shù)據(jù)提供了豐富的工具和資源,在本文中,我們將深入探討如何利用Python進行大規(guī)模數(shù)據(jù)處理和分析,需要的朋友可以參考下
    2024-05-05
  • Python 多張圖片合并成一個pdf的參考示例

    Python 多張圖片合并成一個pdf的參考示例

    最近需要將記的筆記整理成一個pdf進行保存,所以就研究了一下如何利用 Python 代碼將拍下來的照片整個合并成一個pdf
    2021-06-06
  • python基礎教程項目四之新聞聚合

    python基礎教程項目四之新聞聚合

    這篇文章主要為大家詳細介紹了python基礎教程項目四之新聞聚合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • PyTorch實現(xiàn)AlexNet示例

    PyTorch實現(xiàn)AlexNet示例

    今天小編就為大家分享一篇PyTorch實現(xiàn)AlexNet示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 從零開始學習Python Selenium瀏覽器元素定位與實戰(zhàn)技巧

    從零開始學習Python Selenium瀏覽器元素定位與實戰(zhàn)技巧

    這篇文章主要為大家詳細介紹了一份Selenium全教程,涵蓋從基礎到進階的核心知識點,基于Selenium 4版本(當前主流版本),適合新手入門及進階學習,快跟隨小編一起學習起來吧
    2026-03-03
  • 利用python實現(xiàn)后端寫網(wǎng)頁(flask框架)

    利用python實現(xiàn)后端寫網(wǎng)頁(flask框架)

    這篇文章主要給大家介紹了關于如何利用python實現(xiàn)后端寫網(wǎng)頁(flask框架)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • python 元組和列表的區(qū)別

    python 元組和列表的區(qū)別

    這篇文章主要介紹了python 元組和列表的區(qū)別,幫助大家更好的理解和學習python 數(shù)據(jù)類型的相關知識,感興趣的朋友可以了解下
    2020-11-11

最新評論

灵宝市| 全南县| 虎林市| 汝阳县| 邵武市| 宁波市| 九龙城区| 巫溪县| 温泉县| 东港市| 青阳县| 江华| 宁都县| 利津县| 龙山县| 三穗县| 宁河县| 明星| 林口县| 平阴县| 库伦旗| 三都| 琼结县| 闻喜县| 绿春县| 集贤县| 梁河县| 涿鹿县| 嘉荫县| 梅州市| 玉门市| 定陶县| 西乡县| 丰城市| 宿州市| 平远县| 皋兰县| 盐源县| 兴业县| 酒泉市| 杨浦区|