Python中shutil模組的學習筆記教程

2021-08-19 13:25:52 字數 2733 閱讀 3982

python中shutil模組的學習筆記教程

shutil 名字**於 shell utilities,有學習或了解過linux的人應該都對 shell 不陌生,可以藉此來記憶模組的名稱。該模組擁有許多檔案(夾)操作的功能,包括複製、移動、重新命名、刪除等等

一、chutil.copy(source, destination)

shutil.copy() 函式實現檔案複製功能,將 source 檔案複製到 destination 資料夾中,兩個引數都是字串格式。如果 destination 是乙個檔名稱,那麼它會被用來當作複製後的檔名稱,即等於 複製 + 重新命名。

舉例如下:    

>> import shutil

>> import os

>> os.chdir('c:\')

>> shutil.copy('c:\spam.txt', 'c:\delicious')

'c:\delicious\spam.txt'

>> shutil.copy('eggs.txt', 'c:\delicious\eggs2.txt')

'c:\delicious\eggs2.txt'

如**所示,該函式的返回值是複製成功後的字串格式的檔案路徑

二、shutil.copytree(source, destination)

shutil.copytree()函式複製整個資料夾,將 source 資料夾中的所有內容複製到 destination 中,包括 source 裡面的檔案、子資料夾都會被複製過去。兩個引數都是字串格式。

注意:如果 destination 資料夾已經存在,該操作並返回乙個 fileexistserror 錯誤,提示檔案已存在。即表示,如果執行了該函式,程式會自動建立乙個新資料夾(destination引數)並將 source 資料夾中的內容複製過去

舉例如下:    

>> import shutil

>> import os

>> os.chdir('c:\')

>> shutil.copytree('c:\bacon', 'c:\bacon_backup')

\'c:\bacon_backup'

如以上**所示,該函式的返回值是複製成功後的資料夾的絕對路徑字串

所以該函式可以當成是乙個備份功能

三、shutil.move(source, destination)

shutil.move() 函式會將 source 檔案或資料夾移動到 destination 中。返回值是移動後檔案的絕對路徑字串。

如果 destination 指向乙個資料夾,那麼 source 檔案將被移動到 destination 中,並且保持其原有名字。例如:    

>> import shutil

>> shutil.move('c:\bacon.txt', 'c:\eggs')

'c:\eggs\bacon.txt'

上例中,如果 c:\eggs 資料夾中已經存在了同名檔案 bacon.txt,那麼該檔案將被來自於 source 中的同名檔案所重寫。

如果 destination 指向乙個檔案,那麼 source 檔案將被移動並重命名,如下:    

>> shutil.move('c:\bacon.txt', 'c:\eggs\new_bacon.txt')

'c:\eggs\new_bacon.txt'

等於是移動+重新命名

注意,如果 destination 是乙個資料夾,即沒有帶字尾的路徑名,那麼 source 將被移動並重命名為 destination,如下:    

>> shutil.move('c:\bacon.txt', 'c:\eggs')

'c:\eggs'

即 bacon.txt 檔案已經被重新命名為 eggs,是乙個沒有檔案字尾的檔案

最後,destination 資料夾必須是已經存在的,否則會引發異常:    

>> shutil.move('spam.txt', 'c:\does_not_exist\eggs\ham')

traceback (most recent call last):

file "d:\python36\lib\shutil.py", line 538, in move

os.rename(src, real_dst)

filenotfounderror: [winerror 3] 系統找不到指定的路徑。: 'test.txt' -> 'c:\does_not_exist\eggs\ham'

during handling of the above exception, another exception occurred:

traceback (most recent call last):

file "

四、永久性刪除檔案和資料夾

這裡有涉及到 os 模組中的相關函式

os.unlink(path) 會刪除 path 路徑檔案

os.rmdir(path) 會刪除 path 路徑資料夾,但是這個資料夾必須是空的,不包含任何檔案或子資料夾

shutil.rmtree(path) 會刪除 path 路徑資料夾,並且在這個資料夾裡面的所有檔案和子資料夾都會被刪除

利用函式執行刪除操作時,應該倍加謹慎,因為如果想要刪除 txt 檔案,而不小心寫到了 rxt ,那麼將會給自己帶來麻煩

此時,我們可以利用字串的 endswith 屬性對檔案格式進行檢查與篩選

總結以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助.

python中的shutil模組

shutil模組簡介 是python內建的高階的檔案 資料夾 壓縮包處理模組 將src複製到dst中去,dst一定要具有讀寫許可權,如果dst已經存在會被覆蓋,src和dst必須是檔案,不可以是目錄。移動檔案 目錄。或者檔案 目錄重新命名,如果dst存在,則不可覆蓋。複製乙個檔案到乙個檔案或乙個目錄...

python中的shutil模組

引入 import shutil copy 功能 複製檔案 返回值 複製之後的路徑copy2 功能 複製檔案,保留元資料 返回值 複製之後的路徑copyfileobj 將乙個檔案的內容拷貝的另外乙個檔案當中 返回值 無copyfile 功能 將乙個檔案的內容拷貝的另外乙個檔案當中 格式 shutil...

python中的shutil模組

引入 import shutil copy 功能 複製檔案 返回值 複製之後的路徑copy2 功能 複製檔案,保留元資料 返回值 複製之後的路徑copyfileobj 將乙個檔案的內容拷貝的另外乙個檔案當中 返回值 無copyfile 功能 將乙個檔案的內容拷貝的另外乙個檔案當中 格式 shutil...