Python3菜鳥教程:如何在Python中刪除文件和目錄

2021-03-06 Linux公社

Python有一些內置模塊,可讓您刪除文件和目錄。本教程說明了如何使用os,pathlib和shutil模塊中的函數刪除文件和目錄。

刪除文件

在Python中,您可以使用os.remove(),os.unlink(),(),pathlib.Path.unlink()刪除單個文件。

os模塊提供了一種與作業系統交互的可攜式方法。該模塊可用於Python 2和3。

要使用os.remove()刪除單個文件,請將路徑作為參數傳遞給文件:

import os

file_path = '/tmp/linuxmi.txt'
os.remove(file_path)

os.remove() 和 os.unlink()函數在語義上是相同的:

import os

file_path = '/tmp/_cafenv-appconfig_'
os.unlink(file_path)

刪除文件需要在包含文件的目錄上具有寫和執行權限。 否則,您將得到PermissionError錯誤。

為了避免在刪除文件時出錯,可以使用異常處理來捕獲異常並發送適當的錯誤消息:

import os

file_path = '/tmp/_cafenv-appconfig_'

try:
os.remove(file_path)
except OSError as e:
print("Error: %s : %s" % (file_path, e.strerror))

Error: /tmp/_cafenv-appconfig_ : Operation not permittedpathlib模塊在Python 3.4及更高版本中可用。 如果要在Python 2中使用此模塊,可以使用pip進行安裝。 pathlib提供了一個面向對象的界面,用於處理不同作業系統的文件系統路徑。要使用pathlib模塊刪除文件,請創建一個指向該文件的Path對象,然後對該對象調用unlink()方法:
from pathlib import Path

file_path = Path('/tmp/linuxmi.txt')

try:
file_path.unlink()
except OSError as e:
print("Error: %s : %s" % (file_path, e.strerror))

pathlib.Path.unlink(),os.remove() 和 os.unlink()也可用於刪除符號連結。您可以使用glob模塊根據模式匹配多個文件。 例如,要刪除/tmp目錄中的所有.txt文件,您將使用以下內容:
import os
import glob

files = glob.glob('/tmp/*.txt')

for f in files:
try:
f.unlink()
except OSError as e:
print("Error: %s : %s" % (f, e.strerror))

要遞歸刪除/tmp目錄中所有.txt及其下所有子目錄的文件,請將recursive=True參數傳遞給 glob()函數,並使用``**`模式:

import os
import glob

files = glob.glob('/tmp/**/*.txt', recursive=True)

for f in files:
try:
os.remove(f)
except OSError as e:
print("Error: %s : %s" % (f, e.strerror))

pathlib模塊包含兩個glob函數glob() 和 rglob(),用於匹配給定目錄中的文件。 glob() 僅與頂級目錄中的文件匹配。 rglob() 遞歸地匹配目錄和所有子目錄中的所有文件。 下面的示例代碼刪除/tmp目錄中的所有.txt文件:
from pathlib import Path

for f in Path('/tmp').glob('*.txt'):
try:
f.unlink()
except OSError as e:
print("Error: %s : %s" % (f, e.strerror))

在Python中,您可以使用os.rmdir() 和 pathlib.Path.rmdir()刪除一個空目錄,而shutil.rmtree()刪除一個非空目錄。
import os

dir_path = '/tmp/linuxmi'

try:
os.rmdir(dir_path)
except OSError as e:
print("Error: %s : %s" % (dir_path, e.strerror))

from pathlib import Path

dir_path = Path('/tmp/linuxmi')

try:
dir_path.rmdir()
except OSError as e:
print("Error: %s : %s" % (dir_path, e.strerror))

shutil模塊允許您對文件和目錄執行許多高級操作。使用shutil.rmtree()函數,您可以刪除給定目錄,包括其內容:
import shutil

dir_path = '/tmp/linuxmi'

try:
shutil.rmtree(dir_path)
except OSError as e:
print("Error: %s : %s" % (dir_path, e.strerror))

傳遞給shutil.rmtree()的參數不能是指向目錄的符號連結。我們已向您展示了如何使用os.remove(),os.unlink() 和 pathlib.Path.unlink()刪除單個文件, os.rmdir() 和pathlib.Path.rmdir()刪除空白文件,以及shutil.rmtree()來遞歸地刪除目錄及其所有內容。刪除文件或目錄時要格外小心,因為一旦刪除文件,就無法輕鬆恢復它。
與您分享Linux,Java,Python,編程,大數據,人工智慧等。

相關焦點

  • 菜鳥學Python 安裝教程和常見問題
    Anaconda 安裝連結及教程(強烈建議把此文檔看到最後再下手裝!!)一、什麼是 pythonpython 是一門解釋性語言,語法簡單,有大量的擴展包,如處理圖像,爬取網頁等等。(需安裝 python 的解釋器,有了解釋器,即可開始進行 python 編程。)二、什麼是 AnacondaAnaconda 是一個用於科學計算的 Python 發行版,他將 Python 和許多常用的 package 打包,並提供了包管理和環境管理的功能。Anaconda 使用的是 conda 工具來對包和環境進行管理。
  • Python3安裝教程
    本節知識點來源文章:百分之九十的教程都沒這麼細的爬蟲小白第一課——從安裝python到寫出你的第一個爬蟲程序怎麼安裝python安裝python需要到官方網站 https://www.python.org/ 下載安裝包,在Downloads可以看到現在的最新版本
  • 新浪圖床快速下載markdown圖片並遷移至github教程
    這篇教程就是就是為了幫助同樣用了新浪圖床的道友,快速把圖片遷移到其他圖床~因為之前有過用其他小平臺圖床,然後炸圖的經歷,加強了我對圖床的憂患意識。於是在換到新浪圖床的時候,在github上找到了一個python備份markdown圖片的倉庫。具體可以參考python備份hexo博客圖片這篇文章。
  • 如何安裝python3
    如何安裝python3首先找到python的官網: https://www.python.org/然後點擊Download然後選擇對應的版本,這裡選擇的是windows>跳轉到對應的界面以後,選擇python3.5版本,64位下載即可下載完成以後有一個.exe的可執行文件雙擊這個可執行文件,然後進行選擇安裝。
  • 一文看懂Python對文件和文件夾的操作: 含os, shutil和glob模塊.Python學習面試必讀.
    在利用Python或Django從事Web開發時除了必須要了解Python面向對象的編程思想,還必須熟練掌握對文件夾和文件的操作。小編我精心準備了個小結,教你如何利用python進行基本的文件和文件夾操作,並重點介紹了如何使用os, shutil和glob模塊進行常見的文件和文件夾操作,如遍歷,刪除文件和查找文件。
  • Python CGI編程
    CGI文件的擴展名為.cgi,python也可以使用.py擴展名。默認情況下,Linux伺服器配置運行的cgi-bin目錄中為/var/www。目錄中,內容如下:#!name=菜鳥教程&url=http://www.runoob.com以下為hello_get.py文件的代碼:#!
  • Python 文件與目錄操作方法總結
    通過本教程,你可以:檢索文件屬性創建目錄基於文件名的模式匹配遍歷目錄樹創建臨時文件和目錄刪除文件和目錄拷貝、轉移、重命名文件和目錄創建和提取 ZIP 和 TAR 打包使用fileinput模塊打開多個文件Python 讀寫數據到文件使用 Python
  • Python3與Python2 區別
    接天蓮葉無窮碧,映日荷花別樣紅--楊萬裡《曉出淨慈寺送林子方》1、整數相除: python2結果為整數, 捨棄餘數部分;python3
  • 詳解Python中的import的用法
    import語句用來導入其他python文件(稱為模塊module),使用該模塊裡定義的類、方法或者變量,從而達到代碼復用的目的。為了方便說明,我們用實例來說明import的用法,讀者朋友可以跟著嘗試(嘗試時建議使用python3,python2和python3在import的表現有差異,之後會提到)。
  • 零基礎菜鳥如何快速上手Python
    那麼作為零基礎菜鳥的你,如何在Python入門的時候能避開大多數的雷區,這篇文章值得你花10分鐘的時候仔細閱讀。零基礎菜鳥如何快速上手Python為了幫助大家更輕鬆的學好Python,無私分享一套Python學習資料,希望對正在學習的你有所幫助!
  • 腦科學方向|Python3的安裝與環境搭建
    Hello,這裡是行上行下,我是喵君姐姐~上一節介紹了python語言在心理教育科研中的一些較為普遍的應用場景,並簡要概述了python語言的特性。這裡稍作拓展,windows和linux系統下的python開發,代碼風格差異較大,更關鍵的差異在於,某些第三方庫很可能無法在windows平臺進行交叉編譯,因為所依賴的系統庫文件不同。
  • python筆記4-遍歷文件夾目錄os.walk()
    前言如何遍歷查找出某個文件夾內所有的子文件呢?
  • python基礎:range方法在Python2和Python3中的不同
    range()方法是Python中常用的方法, 但是在Python2和Python3中使用方法不同,下面看下它們的不同使用方法。
  • python批量遍歷文件,並清除文件中的幹擾字符
    比如在一個tmp目錄中有三個文本文件,但文件的內容有一些「幹擾字符」,我們要批量將這些字符去除,見下面截圖。清除幹擾字符的思路是這樣的:1、一次只打開一個文件2、一次性讀取這個文件內容,並存儲在一個字符串變量中。3、用字符串替換函數,將「幹擾字符」替換掉。4、清空文件內容。
  • Excel辦公技巧:文件夾中有多個文件,如何快速製作文件目錄?
    在工作中我們可能會遇到要整理文件目錄的情況,比如為下面圖1「PPT教程」文件夾中的6個文件整理一個文件名目錄,參考效果見圖2。這篇文章我們來學習一下操作辦法。圖2操作步驟:1.在Excel工作簿中打開一張工作表,單擊「數據」選項卡"獲取和轉換"功能組中的"新建查詢"按鈕,
  • 未明學院:Python2與Python3的主要區別
    python2 的代碼混亂,重複較多,冗餘。python3源碼規範、清晰、簡單優美。編碼方式,但是ASCII編碼無法對中文等字符進行有效編碼,因此在涉及到中文等其他字符的編碼問題時,ASCII不僅無能為力,而且經常帶來一些亂七八糟的錯誤,這也是Python2中經常出現編碼錯誤的原因之一。
  • 如何使用Python 和 Pandas讀寫JSON文件
    在下一部分中,我們將使用Pandas的 json方法將JSON文件加載到Pandas 數據幀中。在這裡,我們將學習如何從本地和一個URL讀取JSON文件,以及如何使用Pandas讀取一個嵌套的JSON文件。最後,作為獎勵,我們還將學習如何操作Pandas數據幀中的數據、重命名列和使用Seaborn對數據繪製圖表。什麼是JSON文件?
  • Python虛擬環境的搭建(Linux篇)
    使用 virtualenv安裝 virtualenvpip3 install virtualenv創建虛擬環境(執行以下命令,將在當前目錄下創建「虛擬環境名稱" 的虛擬環境文件夾)virtualenv 虛擬環境名稱進入虛擬換cd 虛擬環境名稱source .
  • 從菜鳥到高手,CMD命令行查看目錄中的文件:dir
    在計算機中,文件的查詢管理篩選是非常重要的一項工作,面對日積月累越來越多的文件,做的好效率就會高很多,所以dir命令如此重要。dir 全英文 directory,翻譯為目錄。關注我,每天多知一點點!雖然這麼多參數讓人發懵,但是我們常用的並不多,常用的最多的就是 /A 和 /S 兩個參數,其他常用的會有/B /O /T /Pdir ---不附帶任何參數,列出當前路徑下的目錄和文件(不包含子目錄的文件)dir directory ---列出指定目錄下的子目錄和文件
  • python他律筆記系列二
    dict[    ]將鍵放入方括號中可以取得對應的值,也可以創建新的鍵/對del dict['name']可以直接刪除鍵5.python語法if語句  if-elif-else 與c/c++ 不同的是每個條件後面需要使用冒號:另外python中無switch-case語句while語句 與c/c++一致所需要注意的就是需要加上冒號:另外python