Python 中删除文件的几种方法

article/2025/9/16 14:32:10

很多时候开发者需要删除文件。可能是他错误地创建了文件,或者不再需要该文件。无论出于何种原因,都有一些方法可以通过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 fileos.remove("demo.txt")#Printing the confirmation message of deletionprint("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 pathlibimport pathlibrem_file = pathlib.Path("pythonpool/testfile.txt")rem_file.unlink()

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

unlink()方法适用于文件。如果指定了目录,则会引发OSError。要删除目录,我们可以采用前面讨论的方法之一。

结论

在本文中,我们学习了Python删除文件的各种方法。使用Python删除文件或文件夹的语法非常简单。但是,请注意,一旦执行上述命令,您的文件或文件夹将被永久删除。

如果您仍然对Python删除文件有任何疑问。请在下面的评论部分中告诉我们。

更多阅读

2020 年最佳流行 Python 库 Top 10

2020 Python中文社区热门文章 Top 10

5分钟快速掌握 Python 定时任务框架

特别推荐


点击下方阅读原文加入社区会员


http://chatgpt.dhexx.cn/article/6q5cADj0.shtml

相关文章

使用phpstudy+nat123实现网站发布(实现外网访问内网)

第一次想在网上分享点东西,结果发错了,发成了提问,在这里重新发一遍,看过的见谅! 1.phpStudy phpStudy是一个集成了最新的ApachePHPMySQLphpMyAdminZendOptimizerPHP等程序的集成包,安装完成后,…

nat123内网穿透

在做开发的时候,因为自己没有服务器,想要自己的网站啥的可以外网访问怎么办,这时候咱们可以通过一个工具:nat123来做个内网穿透,非常简单,下面这里做个简单的示范,nat123安装包,我这…

windows 下 nat123免费版内网穿透使用教程

1、首先进入nat123官方网站 http://www.nat123.com/Pages_2_32.jsp,下载windows版,根据环境变量选择下载。 2、安装程序,安装成功后运行,需要注册用户登录,自行注册。 3、点击添加映射,填写完成后点击保存…

在NAT内网环境下使用nginx+nat123搭建外网可访问的代理服务器

原理都一样,都是把内网的某个端口映射到外网上,只不过相对于买虚拟主机,买服务器等等,这个相对简单而且方便一些。而且还便宜(貌似这个公司还处在创业期,至于后期会不会狠宰用户还很难说)下面介…

使用 nat123 用自己电脑做服务器(在自己有网络的电脑上映射到外网域名访问)

最近自己想发布一个项目,买了相应的域名,但是没有买服务器,因为在初始阶段,想后面点再买服务器,现在想用自己的电脑做服务器,于是在网上找到了 nat123这个软件,根据我的经历,刚开始使…

[分享] linux利用nat123发布网站及注意事项

首先需要安装nat123以及客户端,相关的安装流程如下。 然后是在nat123中进行全端口映射,这个是转载的教程,如下。 这里有一些小细节要注意: 在nat123全端口映射添加完成之后,就要进行网站发布的工作,主要都是…

nat123端口映射: 外网通过ssh访问内网非公网ip的服务器

问题描述 LINUX部署在内网环境,没有公网IP,在内网可以上外网。如何实现在外网SSH访问内网LINUX主机? 解决方法: 使用nat123端口映射,一步映射即可将内网LINUX地址映射到外网,实现外网的访问。 nat123提…

使用nat123怎样解决网速慢的问题?

许多人在使用Nat123时会遇到网速慢的问题,下面就来说说相关的解决方法。 1、cname正确指向。cname指向的唯一性。使用自己的域名时,如设置cname指向nat123的,确保cname的唯一性,不对应的cname指向解析慢或其他不可预知的问题。修…

我的世界nat123联机教程

我的世界MC开服,使用nat123游戏联机教程。 一,我的世界MC局域网内部署测试 目的就是确保在内网可以正常访问。 1.下载并安装/解压我的世界MC开服器到本地。 本文最后有附上一个纯净的开服包,提供有需要的下载使用。 开服包主要有二个文件…

内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123)

内网穿透的几种方式-免费与收费(钉钉、Frp、花生壳、nat123) 方式一(钉钉) 阿里钉钉提供的免费内网穿透,是基于ngrok 的,可以实现 Http 穿透,可以将我们本地服务暴露给外部访问,可以用作我们调试一些回调接口,或者共…

内网穿透妙用——内网转公网nat123

公网下访问私有云盘——NAT123免费圆梦 根据前两期发布的关于个人网盘搭建的博客(个人网盘配置——以Cloudreve为例),博主进行了进一步的更新维护,由于初始配置版本是基于局域网组建的,在小型办公室环境内确实使用还算…

使用nat123在个人电脑上搭建服务器(小白详细教程)

昨天自己在个人电脑上搭建了一个服务器(十分简陋。。。),也花了不少时间,遇到了一些坑。这里做一个分享,也帮大家避避坑。因为我也是个小白,自己摸索,所以我就尽量写得步骤详尽一点,…

如何使用利用nat123实现内网穿透

如何使用利用nat123实现内网穿透 首先,我们要明白何为内网穿透,内网穿透即即在计算机在局域网内的时候,外网与内网的计算机的节点进行连接时所需要的连接通信,简单滴说,我们访问百度,实际上是访问了百度的公…

对称密码之3DES

至于 3DES 为什么会出现呢?其实,这个不难想到。由于 DES 是一种非常简便的加密算法,但是密钥长度比较短,计算量比较小,相对来说,比较容易被破解。因此,在 DES 的基础上,使用三重数据…

3DES加密算法

一、3DES加密 DES是一个经典的对称加密算法,但也缺陷明显,即56位的密钥安全性不足,已被证实可以在短时间内破解。为解决此问题,出现了3DES,也称Triple DES,3DES为DES向AES过渡的加密算法,它使用…

java 3des_如何用Java进行3DES加密解密 java实现3des加密解密教程

3des,全称为3DESede或TripleDES,中文解释为是三重数据加密,用户可以通过通过对DES算法进行改进,针对每个数据块进行三次DES加密,下面小编为你带来java实现3des加密解密教程! 首先我们需要自行安装配置java环…

C# 3DES 加密

public class DESHelper{#region 3des加密/// <summary>/// 3des ecb模式加密/// </summary>/// <param name"aStrString">待加密的字符串</param>/// <param name"aStrKey">密钥</param>/// <param name"iv&…

3DES加密

最近需要对外对接部分接口&#xff0c;用到了3DES加密&#xff0c;便顺手整理一下逻辑和python实现。 DES 对称加密算法。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为7个字节共56位&#xff0c;是DES算法的工作密钥&#xff1b;Data为8个字节64位&#xff…

DES对称加密及三重DES(3DES)

一、DES 1 概述 DES算法全称为Data Encryption Standard&#xff0c;即数据加密算法&#xff0c;它是IBM公司于1975年研究成功并公开发表的。DES算法的入口参数有三个&#xff1a;Key、Data、Mode。其中Key为8个字节共64位&#xff0c;是DES算法的工作密钥&#xff1b;Data也为…

3DES加密算法原理及实现

目录 引语 加密 加密算法公式 为什么采用加密-解密-加密的形式 解密 代码实现 注意&#xff1a;3DES是3重DES加解密算法&#xff0c;具体原理同DES,不在赘述。 引语 DES算法是全网公开的&#xff0c;其安全性是依靠秘钥的&#xff0c;但是随着计算机算力的增长&#xff…