講解Python 中刪除檔案的幾種方法

coldplay.xixi
發布: 2021-03-17 10:19:27
轉載
45507 人瀏覽過

講解Python 中刪除檔案的幾種方法

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

(免費學習推薦:python影片教學

使用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_errorstrue,则删除失败导致的错误将被忽略。

oneerror:如果ignore_errorsfalse或被忽略,则通过调用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删除文件有任何疑问。请在下面的评论部分中告诉我们。

大量免费学习推荐,敬请访问python教程(视频)

以上是講解Python 中刪除檔案的幾種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板