中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python模塊shutil函數怎么用

發布時間:2021-10-27 13:40:32 來源:億速云 閱讀:150 作者:小新 欄目:開發技術

小編給大家分享一下python模塊shutil函數怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

本文大綱

os模塊是Python標準庫中一個重要的模塊,里面提供了對目錄和文件的一般常用操作。而Python另外一個標準庫——shutil庫,它作為os模塊的補充,提供了復制、移動、刪除、壓縮、解壓等操作,這些 os 模塊中一般是沒有提供的。但是需要注意的是:shutil 模塊對壓縮包的處理是調用 ZipFile 和 TarFile這兩個模塊來進行的。

python模塊shutil函數怎么用

知識串講

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

python模塊shutil函數怎么用

1)模塊導入

import shutil

2)復制文件

函數:shutil.copy(src,dst)含義:復制文件;參數:src表示源文件,dst表示目標文件夾;注意:當移動到一個不存在的“目標文件夾”,系統會將這個不存在的“目標文件夾”識別為新的文件夾,而不會報錯;

# 1.將a表的“data.txt”移動到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”移動到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”移動到“不存在”的文件夾
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)
"""
注意:對于情況3,系統會默認將“test_shutil_c”識別為文件名,而不是按照我們認為的,移動到一個新的不存在的文件夾。
"""

結果如下:

python模塊shutil函數怎么用

3)復制文件夾

函數:shutil.copytree(src,dst)

含義:復制文件夾;

參數:src表示源文件夾,dst表示目標文件夾;

注意:這里只能是移動到一個空文件夾,而不能是包含其他文件的非空文件夾,否則會報錯PermissionError;

① 如果目標文件夾中存在其他文件,會報錯;

# 將a文件夾移動到b文件夾,由于前面的操作,此時b文件夾中已經有其他文件
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_b"

shutil.copytree(src,dst)

結果如下:

python模塊shutil函數怎么用

② 如果指定任意一個目標文件夾,則會自動創建;

# c文件夾原本是不存在的,我們使用了下方的代碼,會自動創建該文件夾
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_c"

shutil.copytree(src,dst)

結果如下:

python模塊shutil函數怎么用

4)移動文件或文件夾

函數:shutil.move(src,dst)

含義:移動文件/文件夾;

參數:src表示源文件/文件夾,dst表示目標文件夾;

注意:文件/文件夾一旦被移動了,原來位置的文件/文件夾就沒了。目標文件夾不存在時,會報錯;

# 將當前工作目錄下的“a.xlsx”文件,移動到a文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
shutil.move("a.xlsx",dst)
----------------------------------------------------------------
# 將a文件夾下的“a.xlsx”文件,移動到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)

結果如下:

python模塊shutil函數怎么用

注意:移動文件夾操作類似,我這里就不贅述了,自行下去學習。

5)刪除文件夾(慎用)

函數:shutil.rmtree(src)

含義:刪除文件夾;

參數:src表示源文件夾;

注意:區別這里和os模塊中remove()、rmdir()的用法,remove()方法只能刪除某個文件,mdir()只能刪除某個空文件夾。但是shutil模塊中的rmtree()可以遞歸徹底刪除非空文件夾;

# 將c文件夾徹底刪除
src = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_c"
shutil.rmtree(src)

結果如下:

python模塊shutil函數怎么用

6)創建和解壓壓縮包

zipobj.write():創建一個壓縮包;

zipobj.namelist():讀取壓縮包中的文件信息;

zipobj.extract():將壓縮包中的單個文件,解壓出來;

zipobj.extractall():將壓縮包中所有文件,解壓出來;

shutil 模塊對壓縮包的處理是調用 ZipFile 和 TarFile這兩個模塊來進行的,因此需要導入這兩個模塊;

注意:這里所說的壓縮包,指的是“.zip”格式的壓縮包;

① 創建一個壓縮包

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

結果如下:

python模塊shutil函數怎么用

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

import zipfile

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

結果如下:

python模塊shutil函數怎么用

③ 將壓縮包中的單個文件,解壓出來 注意:目標文件夾不存在,會自動創建;

import zipfile
# 將壓縮包中的“test.ipynb”文件,單獨解壓到a文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_a"
with zipfile.ZipFile("我創建的壓縮包.zip", "r") as zipobj:
    zipobj.extract("test.ipynb",dst)

結果如下:

python模塊shutil函數怎么用

④ 將壓縮包中所有文件,解壓出來; 注意:目標文件夾不存在,會自動創建;

import zipfile
# 將壓縮包中的所有文件,解壓到d文件夾下
dst = r"C:\Users\黃偉\Desktop\publish\os模塊\test_shutil_d"
with zipfile.ZipFile("我創建的壓縮包.zip", "r") as zipobj:
    zipobj.extractall(dst)

結果如下:

python模塊shutil函數怎么用

看完了這篇文章,相信你對“python模塊shutil函數怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

陕西省| 谢通门县| 肇源县| 法库县| 商丘市| 保山市| 陇西县| 九龙坡区| 涪陵区| 集安市| 凉城县| 沧源| 沾化县| 和田市| 濉溪县| 巧家县| 东辽县| 谷城县| 手机| 遂川县| 仁布县| 吉林省| 浦东新区| 富宁县| 铜川市| 安康市| 乐亭县| 泰来县| 射阳县| 敦化市| 怀远县| 临城县| 云南省| 天门市| 通辽市| 阿勒泰市| 黑水县| 大邑县| 诸暨市| 渭源县| 阜南县|