os.remove()和shutil.rmtree()刪除文件夾

admin Python評論672字數(shù) 1153閱讀模式
摘要

使用os.remove()刪除文件夾的時候出現(xiàn)PermissionError: [WinError 5] 拒絕訪問
shutil.rmtree()遞歸刪除一個目錄以及目錄內(nèi)的所有內(nèi)容

osremove-刪除文件
os.remove() 方法用于刪除指定路徑的文件。
如果指定的路徑是一個目錄,將拋出異常。
使用示例

import os
p = r'D:\soft\1.jpg'
os.remove(p)

如果刪除的是一個文件,文件可以是圖片,文本,excel等(注意是文件不是文件夾)
如果不存在此文件會拋出異常FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件

當我們想刪除一個文件夾的時候,刪除整個logs文件

os.remove()和shutil.rmtree()刪除文件夾

此時會拋出異常?PermissionError: [WinError 5] 拒絕訪問 os.remove()只能刪除一個文件,并且文件路徑要存在,刪文件夾會報錯。

os.removedirs() 遞歸刪除目錄

os.removedirs() 方法用于遞歸刪除目錄。但目錄必須是空的。

import os
p = r'D:\soft\logs'
os.removedirs(p)

如果目錄不為空,會拋出異常OSError: [WinError 145] 目錄不是空的,所以這個功能比較雞肋,我們一般希望能直接刪除整個文件夾以及子目錄

shutil.rmtree() 刪除這個文件夾目錄

shutil.rmtree() 遞歸刪除一個目錄以及目錄內(nèi)的所有內(nèi)容

import shutil
p = r'D:\soft\logs'
shutil.rmtree(p)

如果文件路徑不存在會拋出異常:FileNotFoundError: [WinError 3] 系統(tǒng)找不到指定的路徑。

shutil模塊其它方法

shutil.copyfile( src, dst)   #從源src復制到dst中去。 如果當前的dst已存在的話就會被覆蓋掉
shutil.move( src, dst)  #移動文件或重命名
shutil.copymode( src, dst) #只是會復制其權(quán)限其他的東西是不會被復制的
shutil.copystat( src, dst) #復制權(quán)限、最后訪問時間、最后修改時間
shutil.copy( src, dst)  #復制一個文件到一個文件或一個目錄
shutil.copy2( src, dst)  #在copy上的基礎(chǔ)上再復制文件最后訪問時間與修改時間也復制過來了,類似于cp –p的東西
shutil.copy2( src, dst)  #如果兩個位置的文件系統(tǒng)是一樣的話相當于是rename操作,只是改名;如果是不在相同的文件系統(tǒng)的話就是做move操作
shutil.copytree( olddir, newdir, True/Flase) #把olddir拷貝一份newdir,如果第3個參數(shù)是True,則復制目錄時將保持文件夾下的符號連接,如果第3個參數(shù)是False,則將在復制的目錄下生成物理副本來替代符號連接
shutil.rmtree( src )   #遞歸刪除一個目錄以及目錄內(nèi)的所有內(nèi)容

版權(quán)聲明:文章圖片資源來源于網(wǎng)絡(luò),如有侵權(quán),請留言刪除!!!
廣告也精彩
admin
  • 本文由 發(fā)表于 2023年7月27日 02:35:35
  • 轉(zhuǎn)載請務(wù)必保留本文鏈接:http://yudch.cn/10857.html
匿名

發(fā)表評論

匿名網(wǎng)友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: