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 PoolTest"
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 est1.txt
Deleted pythonpool est2.txt
Deleted pythonpool est3.txt
Deleted pythonpool est4.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删除文件有任何疑问。请在下面的评论部分中告诉我们。
什么东西一旦申请专利就可以瞬间成为全球首富?已经有两个了,但是国家不准申请专利,也不能随便用,只限低剂量小范围使用。一个是干细胞技术,可以淘汰目前绝大多数药品和美容技术,甚至可使人长生不老。因为牵扯到一系列伦理和社会问题,甚
DNF中无法交易这个称号有用吗?当然有,证明是参加过2013年的周年庆,是个老玩家了。当初不怎么会玩而且穷,这样的完美buff称号仅仅洗了一个拔刀斩的技能就草草了事了,如今想要一个2级破极兵刃的称号没有一个E下不
朗导在奥运会惨败的压力下暗然下课,世界排坛第一主教练会是谁?第一主教练就是郎平,基拉里被坑终于拿了奥运金牌,最终还是过分忌惮郎平,郎平性格霸气无比1984年奥运会时期,基拉里和张常宁的爸爸在男排打比赛,郎平和中田久美打女排比赛,事实上她们就
兰州野生动物园试园消息刚发布,为何很多网友不买账?这几天关于兰州野生动物园门票价格的问题引起了市民的热议。1门票150元,观光车30元,合计180元一家三口或四口去一趟动物园的消费还是很发麻的,而且入园还不许自带饮食,这对于大多数
为什么郑州的农贸市场里卖面条,大多是重庆鲜面条?对河南这样一个小麦种植大省来说,机器压面市场多被别人包圆了,这是一个相当奇怪的现象,外来的和尚会念经吗?其实不仅是郑州,就是在上海这样的地方,大小农贸市场菜市场里卖鲜面条的多数都是
兰州未来几年房价会下跌吗?还能不能买房子?要说房价下跌的可能性一般情况下是不大的,因为房价下跌的后果是很严重的,将会拖累一个地方的经济升级版是当地的银行都全部拖垮。通常房价如果太高的话,是会逐步逐步的让这个房价涨得慢一点,
福州南通未来的发展会怎样,可以在那里买房吗?闽侯南通被媒体及开发商成为刚需上车地。这个之前没什么存在感的区块,与福州的距离比想象中近很多,但是,很重要的但是,南通的面貌大体上还是乡镇的面貌,除了旗山大桥桥下还有城市的气息外,
在云南丽江古城开一家客栈需要多少钱?没有收到邀请,可能没怎么混过这个话题吧,可是依然忍不住想要回答这个问题本人在丽江开了几年客栈,作为一个民宿经营者,不敢说对这个行业非常了解,只想谈一下自己的一些浅见希望对你有帮助。
为什么江西米粉不能像其他地方特色小吃那样遍布全国?小时,在江西生活,米粉陪伴我长大。尤其是崇仁的剁椒米粉,让我魂牵梦萦。印象中,头天晚上先把粉煮半熟,放在水里泡着,第二天胀成圆滚滚的。煮上一锅大骨汤作底,剁上红红的辣椒调料,想吃的
住在重庆,是什么感受?住在重庆是什么感受?我从2000年来到重庆工作,到今年12月20日正式退休就要离开重庆。弹指一挥间,20年就这样过去了,你要说有什么特别的感受,我还真的说不出来,毕竟我是四川人,其
还有比丰田卡罗拉更省油耐开的10万左右的车吗?首先,卡罗拉并不省油!如果你说的是10万左右,那就不包含卡罗拉双擎了,因为双擎价格到了15万了!然后就燃油版!燃油版现在有两个版本1。5L三缸和1。2T四缸。1。5L三缸刚刚上市,