很多时候开发者需要删除文件。可能是他错误地创建了文件,或者不再需要该文件。无论出于何种原因,都有一些方法可以通过Python来删除文件,而无需手动查找文件并通过UI交互来进行删除操作。
(免费学习推荐:python视频教程)
Python中的OS模块提供了与操作系统进行交互的功能。OS属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便携式方法。
Python中的os.remove()
方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError
。
注意:可以使用os.rmdir()
删除目录。
句法:
os.remove(path)
参数
返回值
remove()
方法没有返回值。
我们来看一些使用os.remove
函数删除Python文件的示例。
# 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()
方法。这种方法有助于我们找出文件是否存在于特定位置。
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)
输出:
解释:
从os模块导入os模块和
listdir
。必须使用listdir
才能获取特定文件夹中所有文件的列表,并且需要os模块才能删除文件。endswith
用于检查文件是否以.txt
扩展名结尾。当我们删除文件夹中的所有.txt
文件时,如果条件可以验证,则进行此操作。如果文件名以
.txt
扩展名结尾,我们将使用os.remove()
函数删除该文件。此函数将文件的路径作为参数。my_path
+file_name
是我们要删除的文件的完整路径。
#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()
是os.remove()
的别名。在Unix OS中,删除也称为unlink
。
注意:所有功能和语法与os.unlink()
和os.remove()
相同。它们都用于删除Python文件路径。两者都是Python标准库的os模块中执行删除功能的方法。
它有两个名称,别名:os.unlink()
和os.remove()
为同一个函数提供两个别名的可能原因是,该模块的维护者认为,许多程序员可能会从C的底层编程转向Python,其中库函数和底层系统调用称为unlink()
,而其他人则可能会使用rm
命令(“删除”的缩写)或shell脚本来简化语言。
shutil.rmtree()
:删除指定的目录,所有子目录和所有文件。此功能特别危险,因为它无需检查即可删除所有内容。结果,您可以使用此功能轻松丢失数据。
rmtree()
是shutil模块下的一种方法,该方法以递归方式删除目录及其内容。
句法:
Shutil.rmtree(path,ignore_errors = False,onerror = None)
参数:
path
:类似路径的对象,表示文件路径。类路径对象是表示路径的字符串或字节对象。
ignore_errors
:如果ignore_errors
为true
,则删除失败导致的错误将被忽略。
oneerror
:如果ignore_errors
为false
或被忽略,则通过调用onerror
指定的处理程序来处理此类错误。
示例:使用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)
输出:
Python中使用pathlib.Path.unlink()
删除文件
pathlib
模块在Python 3.4及更高版本中可用。如果要在Python 2中使用此模块,可以使用pip进行安装。pathlib
提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。
要使用pathlib
模块删除文件,请创建一个指向该文件的Path
对象,然后对该对象调用unlink()
方法:
#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教程(视频)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。