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

Python中的shutil模塊使用詳解

 更新時(shí)間:2023年09月18日 11:13:44   作者:數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)之美  
這篇文章主要介紹了Python中的shutil模塊使用詳解,shutil庫(kù)作為os模塊的補(bǔ)充,提供了復(fù)制、移動(dòng)、刪除、壓縮、解壓等操作,這些 os 模塊中一般是沒有提供的,需要的朋友可以參考下

本文大綱

os模塊是Python標(biāo)準(zhǔn)庫(kù)中一個(gè)重要的模塊,里面提供了對(duì)目錄和文件的一般常用操作。

而Python另外一個(gè)標(biāo)準(zhǔn)庫(kù)——shutil庫(kù),它作為os模塊的補(bǔ)充,提供了復(fù)制、移動(dòng)、刪除、壓縮、解壓等操作,這些 os 模塊中一般是沒有提供的。

但是需要注意的是:shutil 模塊對(duì)壓縮包的處理是調(diào)用 ZipFile 和 TarFile這兩個(gè)模塊來(lái)進(jìn)行的。

在這里插入圖片描述

知識(shí)串講

本文所使用的素材,都是基于以下2個(gè)文件夾,其中一個(gè)文件夾為空。

在這里插入圖片描述

1)模塊導(dǎo)入

import shutil

2)復(fù)制文件

  • 函數(shù):shutil.copy(src,dst)
  • 含義:復(fù)制文件;
  • 參數(shù):src表示源文件,dst表示目標(biāo)文件夾;
  • 注意:當(dāng)移動(dòng)到一個(gè)不存在的“目標(biāo)文件夾”,系統(tǒng)會(huì)將這個(gè)不存在的“目標(biāo)文件夾”識(shí)別為新的文件夾,而不會(huì)報(bào)錯(cuò);
# 1.將a表的“data.txt”移動(dòng)到b表
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\data.txt"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_b"
shutil.copy(src,dst)
------------------------------------------------------------
# 2.將a表的“data.txt”移動(dòng)到b表,并重新命名為“new_data.txt”
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\data.txt"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_b\new_data.txt"
shutil.copy(src,dst)
------------------------------------------------------------
# 3.將a表的“data.txt”移動(dòng)到“不存在”的文件夾
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a\data.txt"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_c"
shutil.copy(src,dst)
"""
注意:對(duì)于情況3,系統(tǒng)會(huì)默認(rèn)將“test_shutil_c”識(shí)別為文件名,而不是按照我們認(rèn)為的,移動(dòng)到一個(gè)新的不存在的文件夾。
"""

結(jié)果如下:

在這里插入圖片描述

3)復(fù)制文件夾

  • 函數(shù):shutil.copytree(src,dst)
  • 含義:復(fù)制文件夾;
  • 參數(shù):src表示源文件夾,dst表示目標(biāo)文件夾;
  • 注意:這里只能是移動(dòng)到一個(gè)空文件夾,而不能是包含其他文件的非空文件夾,否則會(huì)報(bào)錯(cuò)PermissionError;

 ① 如果目標(biāo)文件夾中存在其他文件,會(huì)報(bào)錯(cuò);

# 將a文件夾移動(dòng)到b文件夾,由于前面的操作,此時(shí)b文件夾中已經(jīng)有其他文件
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_b"
shutil.copytree(src,dst)

結(jié)果如下:

在這里插入圖片描述

② 如果指定任意一個(gè)目標(biāo)文件夾,則會(huì)自動(dòng)創(chuàng)建;

# c文件夾原本是不存在的,我們使用了下方的代碼,會(huì)自動(dòng)創(chuàng)建該文件夾
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_c"
shutil.copytree(src,dst)

結(jié)果如下:

在這里插入圖片描述

4)移動(dòng)文件或文件夾

  • 函數(shù):shutil.move(src,dst)
  • 含義:移動(dòng)文件/文件夾;
  • 參數(shù):src表示源文件/文件夾,dst表示目標(biāo)文件夾;
  • 注意:文件/文件夾一旦被移動(dòng)了,原來(lái)位置的文件/文件夾就沒了。目標(biāo)文件夾不存在時(shí),會(huì)報(bào)錯(cuò);
# 將當(dāng)前工作目錄下的“a.xlsx”文件,移動(dòng)到a文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
shutil.move("a.xlsx",dst)
----------------------------------------------------------------
# 將a文件夾下的“a.xlsx”文件,移動(dòng)到b文件夾中,并重新命名為“aa.xlsx”
src = r"C:/Users/黃偉/Desktop/publish/os模塊/test_shutil_a\a.xlsx"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_b\aa.xlsx"
shutil.move(src,dst)

結(jié)果如下:

在這里插入圖片描述

注意:移動(dòng)文件夾操作類似,我這里就不贅述了,自行下去學(xué)習(xí)。

5)刪除文件夾(慎用)

  • 函數(shù):shutil.rmtree(src)
  • 含義:刪除文件夾;
  • 參數(shù):src表示源文件夾;
  • 注意:區(qū)別這里和os模塊中remove()、rmdir()的用法,remove()方法只能刪除某個(gè)文件,mdir()只能刪除某個(gè)空文件夾。但是shutil模塊中的rmtree()可以遞歸徹底刪除非空文件夾;
# 將c文件夾徹底刪除
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_c"
shutil.rmtree(src)

結(jié)果如下:

在這里插入圖片描述

6)創(chuàng)建和解壓壓縮包

  • zipobj.write():創(chuàng)建一個(gè)壓縮包;
  • zipobj.namelist():讀取壓縮包中的文件信息;
  • zipobj.extract():將壓縮包中的單個(gè)文件,解壓出來(lái);
  • zipobj.extractall():將壓縮包中所有文件,解壓出來(lái);
  • shutil 模塊對(duì)壓縮包的處理是調(diào)用 ZipFile 和 TarFile這兩個(gè)模塊來(lái)進(jìn)行的,因此需要導(dǎo)入這兩個(gè)模塊;
  • 注意:這里所說(shuō)的壓縮包,指的是“.zip”格式的壓縮包;

① 創(chuàng)建一個(gè)壓縮包

import zipfile
import os
file_list = os.listdir(os.getcwd())
# 將上述所有文件,進(jìn)行打包,使用“w”
with zipfile.ZipFile(r"我創(chuàng)建的壓縮包.zip", "w") as zipobj:
    for file in file_list:
        zipobj.write(file)

結(jié)果如下:

在這里插入圖片描述

② 讀取壓縮包中的文件信息

import zipfile
with zipfile.ZipFile("我創(chuàng)建的壓縮包.zip", "r") as zipobj:
    print(zipobj.namelist())

結(jié)果如下:

在這里插入圖片描述

③ 將壓縮包中的單個(gè)文件,解壓出來(lái)

  • 注意:目標(biāo)文件夾不存在,會(huì)自動(dòng)創(chuàng)建;
import zipfile
# 將壓縮包中的“test.ipynb”文件,單獨(dú)解壓到a文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
with zipfile.ZipFile("我創(chuàng)建的壓縮包.zip", "r") as zipobj:
    zipobj.extract("test.ipynb",dst)

結(jié)果如下:

在這里插入圖片描述

④ 將壓縮包中所有文件,解壓出來(lái);

  • 注意:目標(biāo)文件夾不存在,會(huì)自動(dòng)創(chuàng)建;
import zipfile
# 將壓縮包中的所有文件,解壓到d文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_d"
with zipfile.ZipFile("我創(chuàng)建的壓縮包.zip", "r") as zipobj:
    zipobj.extractall(dst)

結(jié)果如下:

在這里插入圖片描述

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

相關(guān)文章

  • python基于tkinter制作m3u8視頻下載工具

    python基于tkinter制作m3u8視頻下載工具

    這篇文章主要介紹了python如何基于tkinter制作m3u8視頻下載工具,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python實(shí)現(xiàn)html轉(zhuǎn)ubb代碼(html2ubb)

    python實(shí)現(xiàn)html轉(zhuǎn)ubb代碼(html2ubb)

    這篇文章主要介紹了python實(shí)現(xiàn)html轉(zhuǎn)ubb代碼(html2ubb),使用正則表達(dá)式寫的一個(gè)函數(shù),需要的朋友可以參考下
    2014-07-07
  • python繪制熱力圖heatmap

    python繪制熱力圖heatmap

    這篇文章主要為大家詳細(xì)介紹了python繪制熱力圖heatmap,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 教你如何使用Python下載B站視頻的詳細(xì)教程

    教你如何使用Python下載B站視頻的詳細(xì)教程

    這篇文章主要介紹了教你如何使用Python下載B站視頻的詳細(xì)教程,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python 識(shí)別圖片中的文字信息方法

    python 識(shí)別圖片中的文字信息方法

    今天小編就為大家分享一篇python 識(shí)別圖片中的文字信息方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • python3+PyQt5重新實(shí)現(xiàn)自定義數(shù)據(jù)拖放處理

    python3+PyQt5重新實(shí)現(xiàn)自定義數(shù)據(jù)拖放處理

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5重新實(shí)現(xiàn)自定義數(shù)據(jù)拖放處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python基于回溯法子集樹模板解決野人與傳教士問題示例

    Python基于回溯法子集樹模板解決野人與傳教士問題示例

    這篇文章主要介紹了Python基于回溯法子集樹模板解決野人與傳教士問題,簡(jiǎn)單說(shuō)明了野人與傳教士問題,并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹模板解決野人與傳教士問題的步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python代碼顯得Pythonic(區(qū)別于其他語(yǔ)言的寫法)

    Python代碼顯得Pythonic(區(qū)別于其他語(yǔ)言的寫法)

    這篇文章主要介紹了Python代碼顯得Pythonic(區(qū)別于其他語(yǔ)言的寫法),對(duì)于字符串連接,相比于簡(jiǎn)單的+,更pythonic的做法是盡量使用%操作符或者format函數(shù)格式化字符串,感興趣的小伙伴和小編一起進(jìn)入文章了解更詳細(xì)相關(guān)知識(shí)內(nèi)容吧
    2022-02-02
  • 跟老齊學(xué)Python之從if開始語(yǔ)句的征程

    跟老齊學(xué)Python之從if開始語(yǔ)句的征程

    前面做了很多鋪墊了,真正的編程我們還沒有講過(guò),各位童鞋也許早就不耐煩了,好吧,今天我們就從if語(yǔ)句來(lái)踏上我們的征程
    2014-09-09
  • PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新

    PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新

    今天小編就為大家分享一篇PyTorch實(shí)現(xiàn)更新部分網(wǎng)絡(luò),其他不更新,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論

莱阳市| 崇信县| 三门峡市| 临洮县| 方正县| 本溪市| 平远县| 新乐市| 凤山县| 开远市| 门头沟区| 四平市| 宜宾县| 稻城县| 汽车| 新绛县| 谢通门县| 定州市| 边坝县| 岗巴县| 阳东县| 应用必备| 武宁县| 白山市| 柏乡县| 青阳县| 集贤县| 泸州市| 普洱| 和平区| 远安县| 竹山县| 中卫市| 历史| 台北市| 涞源县| 昂仁县| 千阳县| 米泉市| 乐亭县| 石景山区|