天天看點

Python 中删除檔案的幾種方法

很多時候開發者需要删除檔案。可能是他錯誤地建立了檔案,或者不再需要該檔案。無論出于何種原因,都有一些方法可以通過Python來删除檔案,而無需手動查找檔案并通過UI互動來進行删除操作。

使用Python删除檔案有多種方法,但是最好的方法如下:

  • os.remove()删除檔案
  • os.unlink()删除檔案。它是remove()方法的Unix名稱。
  • shutil.rmtree()删除目錄及其下面所有内容。
  • pathlib.Path.unlink()在Python 3.4及更高版本中用來删除單個檔案pathlib子產品。

os.remove()删除檔案

Python中的OS子產品提供了與作業系統進行互動的功能。OS屬于Python的标準實用程式子產品。該子產品提供了使用依賴于作業系統的功能的便攜式方法。

Python中的os.remove()方法用于删除檔案路徑。此方法無法删除目錄。如果指定的路徑是目錄,則該方法将引發OSError。

注意:可以使用os.rmdir()删除目錄。

句法:

以下是remove()方法删除Python檔案的文法

os.remove(path)

參數

  • path —— 這是要删除的路徑或檔案名。

傳回值

remove()方法沒有傳回值。

我們來看一些使用os.remove函數删除Python檔案的示例。

示例1:使用OS.Remove()方法删除檔案的基本示例。

# Importing the os library

import os

# Inbuilt function to remove files

os.remove("test_file.txt")

print("File removed successfully")

輸出:

File removed successfully

說明:在上面的示例中,我們删除了檔案或删除了名為testfile.txt的檔案的路徑。解釋程式流程的步驟如下:

1.首先,我們導入了os庫,因為os庫中存在remove()方法。

2.然後,我們使用内置函數os.remove()删除檔案的路徑。

3.在此示例中,我們的示例檔案是“ test_file.txt”。您可以在此處放置所需的檔案。

注意:如果沒有名為test_file.txt的檔案,則上面的示例将引發錯誤。是以,最好在删除檔案之前先檢查檔案是否可用。

示例2:使用Os.Path.Isfile檢查檔案是否存在并使用Os.Remove删除它

在示例1中,我們剛剛删除了目錄中存在的檔案。os.remove()方法将在工作目錄中搜尋要删除的檔案。是以,最好檢查檔案是否存在。

讓我們學習如何檢查具有特定名稱的檔案在該路徑中是否可用。我們正在使用os.path.isfile來檢查檔案的可用性。

#importing the os Library

import os

#checking if file exist or not

if(os.path.isfile("test.txt")):

#os.remove() function to remove the file

os.remove("demo.txt")

#Printing the confirmation message of deletion

print("File Deleted successfully")

else:

print("File does not exist")

#Showing the message instead of throwig an error

輸出:

File Deleted successfully

在上面的示例中,我們僅添加了os.pasth.isfile()方法。這種方法有助于我們找出檔案是否存在于特定位置。

示例3:Python程式删除具有特定擴充名的所有檔案

import os

from os import listdir

my_path = 'C:\Python Pool\Test\'

for file_name in listdir(my_path):

if file_name.endswith('.txt'):

os.remove(my_path + file_name)

輸出:

使用此程式,我們将從檔案夾删除擴充名為.txt的所有檔案。

解釋:

從os子產品導入os子產品和listdir。必須使用listdir才能擷取特定檔案夾中所有檔案的清單,并且需要os子產品才能删除檔案。

my_path是包含所有檔案的檔案夾的路徑。

我們正在周遊給定檔案夾中的檔案。listdir用于擷取特定檔案夾中所有檔案的一個清單。

endswith用于檢查檔案是否以.txt擴充名結尾。當我們删除檔案夾中的所有.txt檔案時,如果條件可以驗證,則進行此操作。

如果檔案名以.txt擴充名結尾,我們将使用os.remove()函數删除該檔案。此函數将檔案的路徑作為參數。my_path + file_name是我們要删除的檔案的完整路徑。

示例4:删除檔案夾中所有檔案的Python程式

要删除特定目錄中的所有檔案,隻需使用*符号作為模式字元串。

#Importing os and glob modules

import os, glob

#Loop Through the folder projects all files and deleting them one by one

for file in glob.glob("pythonpool/*"):

os.remove(file)

print("Deleted " + str(file))

輸出:

Deleted pythonpool\test1.txt

Deleted pythonpool\test2.txt

Deleted pythonpool\test3.txt

Deleted pythonpool\test4.txt

在此示例中,我們将删除pythonpool檔案夾中的所有檔案。

注意:如果檔案夾包含其他子檔案夾,則可能會報錯,因為glob.glob()方法将擷取所有檔案夾内容的名稱,無論它們是檔案還是子檔案夾。是以,請嘗試使模式更具體(例如*.*),以僅擷取具有擴充名的内容。

使用os.unlink()删除Python檔案

os.unlink()是os.remove()的别名。在Unix OS中,删除也稱為unlink。

注意:所有功能和文法與os.unlink()和os.remove()相同。它們都用于删除Python檔案路徑。兩者都是Python标準庫的os子產品中執行删除功能的方法。

它有兩個名稱,别名:os.unlink()和os.remove()

為同一個函數提供兩個别名的可能原因是,該子產品的維護者認為,許多程式員可能會從C的底層程式設計轉向Python,其中庫函數和底層系統調用稱為unlink( ),而其他人則可能會使用rm指令(“删除”的縮寫)或shell腳本來簡化語言。

使用shutil.rmtree()删除Python檔案

shutil.rmtree():删除指定的目錄,所有子目錄和所有檔案。此功能特别危險,因為它無需檢查即可删除所有内容。結果,您可以使用此功能輕松丢失資料。

rmtree()是shutil子產品下的一種方法,該方法以遞歸方式删除目錄及其内容。

句法:

Shutil.rmtree(path,ignore_errors = False,onerror = None)

參數:

path:類似路徑的對象,表示檔案路徑。類路徑對象是表示路徑的字元串或位元組對象。

ignore_errors:如果ignore_errors為true,則删除失敗導緻的錯誤将被忽略。

oneerror:如果ignore_errors為false或被忽略,則通過調用onerror指定的處理程式來處理此類錯誤。

我們來看一個使用python腳本删除檔案的示例。

示例:使用Shutil.Rmtree()删除檔案的Python程式

# Python program to demonstrate shutil.rmtree()

import shutil

import os

# location

location = "E:/Projects/PythonPool/"

# directory

dir = "Test"

# path

path = os.path.join(location, dir)

# removing directory

shutil.rmtree(path)

輸出:

它将删除Test内檔案的整個目錄,包括Test檔案夾本身。

Python中使用pathlib.Path.unlink()删除檔案

pathlib子產品在Python 3.4及更高版本中可用。如果要在Python 2中使用此子產品,可以使用pip進行安裝。pathlib提供了一個面向對象的界面,用于處理不同作業系統的檔案系統路徑。

要使用pathlib子產品删除檔案,請建立一個指向該檔案的Path對象,然後對該對象調用unlink()方法:

示例:使用Pathlib删除檔案的Python程式

#Example of file deletion by pathlib

import pathlib

rem_file = pathlib.Path("pythonpool/testfile.txt")

rem_file.unlink()

在上面的示例中,path()方法用于檢索檔案路徑,而unlink()方法用于删除指定路徑的檔案。

unlink()方法适用于檔案。如果指定了目錄,則會引發OSError。要删除目錄,我們可以采用前面讨論的方法之一。

結論

在本文中,我們學習了Python删除檔案的各種方法。使用Python删除檔案或檔案夾的文法非常簡單。但是,請注意,一旦執行上述指令,您的檔案或檔案夾将被永久删除。

如果您仍然對Python删除檔案有任何疑問。請在下面的評論部分中告訴我們。