Python编程基础:第三十五节 文件删除Delete a File
第三十五節 文件刪除Delete a File
- 前言
- 實踐
前言
我們這一節來介紹如何刪除一個文件,這里需要用到函數os.remove(path)用于刪除指定路徑下的文件,os.rmdir(path)用于刪除指定路徑下的空文件夾,shutil.rmtree(path)用于刪除指定路徑下的文件夾及其子文件夾。
實踐
我們先來學習刪除一個文件,這里同樣以之前用到的lyric.txt為例進行展示:
import os path = r"C:\Users\shen_student\Desktop\lyric.txt" os.remove(path)可見該文件被刪除了,那么如果我們刪除一個不存在的文件會發生什么呢?我們將上述代碼再運行一次,會發現程序報錯了:
>>> FileNotFoundError: [WinError 2] 系統找不到指定的文件。: 'C:\\Users\\shen_student\\Desktop\\lyric.txt'他告訴你找不到指定的文件,這里我們可以用Python的異常相關知識避免程序遇到異常時中斷執行:
import os path = r"C:\Users\shen_student\Desktop\lyric.txt" try:os.remove(path) except FileNotFoundError:print("That file was not found") else:print(path + " was deleted")我們運行上述代碼,發現當指定文件不存在時會打印That file was not found,當文件存在時會打印C:\Users\shen_student\Desktop\temp.txt was deleted。
那么我們是否可以用os.remove(path)這個函數刪掉一個空文件夾呢?我們新建一個空文件夾命名為temp,然后執行代碼:
會發現程序報錯了,錯誤信息為:
>>> PermissionError: [WinError 5] 拒絕訪問。: 'C:\\Users\\shen_student\\Desktop\\temp'也即無法訪問這個路徑,這是因為os.remove(path)只能刪除文件,不能刪除文件夾,如果我們想刪除文件夾,需要用到os.rmdir(path)這個函數:
import os path = r"C:\Users\shen_student\Desktop\temp" try:os.rmdir(path) except FileNotFoundError:print("That file was not found") else:print(path + " was deleted")我們執行上述代碼會發現空文件夾已經被成功刪除并打印C:\Users\shen_student\Desktop\temp was deleted。如果再執行一次便會打印That file was not found,因為此時文件夾已經不存在了,所以他會拋出異常信息,也即文件不存在。如果我們文件夾還包含子文件時,用上述代碼刪除文件夾會發生什么呢?
我們在temp文件夾下新建temp文件夾,然后執行上述代碼:
發現程序報錯了,告訴你文件夾不是空的,這是因為os.rmdir(path)只能刪除空文件夾,如果要刪除包含子文件的文件夾,我們需要用到函數shutil.rmtree(path)。并且,我們也可以用異常處理機制避免上述異常中斷:
import os import shutil path = r"C:\Users\shen_student\Desktop\temp" try:shutil.rmtree(path) except FileNotFoundError:print("That file was not found") except PermissionError:print("You do not have permission to delete that") except OSError:print("You cannot delete that using that fuction") else:print(path + " was deleted") >>> C:\Users\shen_student\Desktop\temp was deleted可以發現文件夾已經被成功刪除了。
以上便是文件刪除的全部內容,感謝大家的收藏、點贊、評論。我們下一節將介紹模塊(Modules),敬請期待~
總結
以上是生活随笔為你收集整理的Python编程基础:第三十五节 文件删除Delete a File的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python编程基础:第三十四节 文件移
- 下一篇: Python编程基础:第三十六节 模块M