溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python中有哪些刪除文件的方法

發(fā)布時(shí)間:2021-07-05 18:13:30 來(lái)源:億速云 閱讀:231 作者:Leah 欄目:編程語(yǔ)言

Python中有哪些刪除文件的方法,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

使用Python刪除文件有多種方法,但是最好的方法如下:

  •  os.remove()刪除文件

  •  os.unlink()刪除文件。它是remove()方法的Unix名稱(chēng)。

  •  shutil.rmtree()刪除目錄及其下面所有內(nèi)容。

  •  pathlib.Path.unlink()在Python 3.4及更高版本中用來(lái)刪除單個(gè)文件pathlib模塊。

os.remove()刪除文件

Python中的OS模塊提供了與操作系統(tǒng)進(jìn)行交互的功能。OS屬于Python的標(biāo)準(zhǔn)實(shí)用程序模塊。該模塊提供了使用依賴于操作系統(tǒng)的功能的便攜式方法。

Python中的os.remove()方法用于刪除文件路徑。此方法無(wú)法刪除目錄。如果指定的路徑是目錄,則該方法將引發(fā)OSError。

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

句法:

以下是remove()方法刪除Python文件的語(yǔ)法:

os.remove(path)

參數(shù)

  •  path —— 這是要?jiǎng)h除的路徑或文件名。

返回值

remove()方法沒(méi)有返回值。

我們來(lái)看一些使用os.remove函數(shù)刪除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

說(shuō)明:在上面的示例中,我們刪除了文件或刪除了名為testfile.txt的文件的路徑。解釋程序流程的步驟如下:

1.首先,我們導(dǎo)入了os庫(kù),因?yàn)閛s庫(kù)中存在remove()方法。

2.然后,我們使用內(nèi)置函數(shù)os.remove()刪除文件的路徑。

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

注意:如果沒(méi)有名為test_file.txt的文件,則上面的示例將引發(fā)錯(cuò)誤。因此,最好在刪除文件之前先檢查文件是否可用。

示例2:使用Os.Path.Isfile檢查文件是否存在并使用Os.Remove刪除它

在示例1中,我們剛剛刪除了目錄中存在的文件。os.remove()方法將在工作目錄中搜索要?jiǎng)h除的文件。因此,最好檢查文件是否存在。

讓我們學(xué)習(xí)如何檢查具有特定名稱(chēng)的文件在該路徑中是否可用。我們正在使用os.path.isfile來(lái)檢查文件的可用性。

#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程序刪除具有特定擴(kuò)展名的所有文件

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)

輸出:

使用此程序,我們將從文件夾刪除擴(kuò)展名為.txt的所有文件。

解釋?zhuān)?/strong>

  •  從os模塊導(dǎo)入os模塊和listdir。必須使用listdir才能獲取特定文件夾中所有文件的列表,并且需要os模塊才能刪除文件。

  •  my_path是包含所有文件的文件夾的路徑。

  •  我們正在遍歷給定文件夾中的文件。listdir用于獲取特定文件夾中所有文件的一個(gè)列表。

  •  endswith用于檢查文件是否以.txt擴(kuò)展名結(jié)尾。當(dāng)我們刪除文件夾中的所有.txt文件時(shí),如果條件可以驗(yàn)證,則進(jìn)行此操作。

  •  如果文件名以.txt擴(kuò)展名結(jié)尾,我們將使用os.remove()函數(shù)刪除該文件。此函數(shù)將文件的路徑作為參數(shù)。my_path + file_name是我們要?jiǎng)h除的文件的完整路徑。

示例4:刪除文件夾中所有文件的Python程序

要?jiǎng)h除特定目錄中的所有文件,只需使用*符號(hào)作為模式字符串。

#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文件夾中的所有文件。

注意:如果文件夾包含其他子文件夾,則可能會(huì)報(bào)錯(cuò),因?yàn)間lob.glob()方法將獲取所有文件夾內(nèi)容的名稱(chēng),無(wú)論它們是文件還是子文件夾。因此,請(qǐng)嘗試使模式更具體(例如*.*),以僅獲取具有擴(kuò)展名的內(nèi)容。

使用os.unlink()刪除Python文件

os.unlink()是os.remove()的別名。在Unix OS中,刪除也稱(chēng)為unlink。

注意:所有功能和語(yǔ)法與os.unlink()和os.remove()相同。它們都用于刪除Python文件路徑。兩者都是Python標(biāo)準(zhǔn)庫(kù)的os模塊中執(zhí)行刪除功能的方法。

它有兩個(gè)名稱(chēng),別名:os.unlink()和os.remove()

為同一個(gè)函數(shù)提供兩個(gè)別名的可能原因是,該模塊的維護(hù)者認(rèn)為,許多程序員可能會(huì)從C的底層編程轉(zhuǎn)向Python,其中庫(kù)函數(shù)和底層系統(tǒng)調(diào)用稱(chēng)為unlink( ),而其他人則可能會(huì)使用rm命令(“刪除”的縮寫(xiě))或shell腳本來(lái)簡(jiǎn)化語(yǔ)言。

使用shutil.rmtree()刪除Python文件

shutil.rmtree():刪除指定的目錄,所有子目錄和所有文件。此功能特別危險(xiǎn),因?yàn)樗鼰o(wú)需檢查即可刪除所有內(nèi)容。結(jié)果,您可以使用此功能輕松丟失數(shù)據(jù)。

rmtree()是shutil模塊下的一種方法,該方法以遞歸方式刪除目錄及其內(nèi)容。

句法:

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

參數(shù):

path:類(lèi)似路徑的對(duì)象,表示文件路徑。類(lèi)路徑對(duì)象是表示路徑的字符串或字節(jié)對(duì)象。

ignore_errors:如果ignore_errors為true,則刪除失敗導(dǎo)致的錯(cuò)誤將被忽略。

oneerror:如果ignore_errors為false或被忽略,則通過(guò)調(diào)用onerror指定的處理程序來(lái)處理此類(lèi)錯(cuò)誤。

我們來(lái)看一個(gè)使用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內(nèi)文件的整個(gè)目錄,包括Test文件夾本身。

Python中使用pathlib.Path.unlink()刪除文件

pathlib模塊在Python  3.4及更高版本中可用。如果要在Python 2中使用此模塊,可以使用pip進(jìn)行安裝。pathlib提供了一個(gè)面向?qū)ο蟮慕缑?,用于處理不同操作系統(tǒng)的文件系統(tǒng)路徑。

要使用pathlib模塊刪除文件,請(qǐng)創(chuàng)建一個(gè)指向該文件的Path對(duì)象,然后對(duì)該對(duì)象調(diào)用unlink()方法:

示例:使用Pathlib刪除文件的Python程序

#Example of file deletion by pathlib   import pathlib   rem_file = pathlib.Path("pythonpool/testfile.txt")  rem_file.unlink()

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

unlink()方法適用于文件。如果指定了目錄,則會(huì)引發(fā)OSError。要?jiǎng)h除目錄,我們可以采用前面討論的方法之一。

關(guān)于Python中有哪些刪除文件的方法問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI