如何使用python删除一个文件?好用到上头.....

人生苦短,我用python

若想利用python删除windows里的文件,

这里需要使用os模块

那接下来就看看利用os模块是如何删除文件的吧~

具体实现方法如下!

更多学习资料:点击此处跳转文末名片获取

在这里插入图片描述

os.remove(path)

删除文件 path. 如果path是一个目录,

抛出 OSError错误。

如果要删除目录

请使用rmdir().

remove() unlink()的功能是一样的

Windows系统中,

删除一个正在使用的文件,

将抛出异常。

Unix中,

目录表中的记录被删除,

但文件的存储还在。

import os
my_file = 'D:/text.txt' # 文件路径
if os.path.exists(my_file): # 如果文件存在
    #删除文件,可使用以下两种方法。
    os.remove(my_file) # 则删除
    #os.unlink(my_file)  python学习交流:660193417##
else:
    print('no such file:%s'%my_file)

在这里插入图片描述

os.removedirs(path)

递归地删除目录。类似于rmdir(), 如果子目录被成功删除, removedirs() 将会删除父目录;但子目录没有成功删除,将抛出错误。

例如, os.removedirs(“foo/bar/baz”) 将首先删除baz目录,

然后再删除barfoo,

如果他们是空的话,

则子目录不能成功删除,

将抛出 OSError异常

os.rmdir(path)

删除目录 path,

要求path必须是个空目录,

否则抛出OSError错误


import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

方法2:

代码如下:

import shutil
shutil.rmtree()

在这里插入图片描述

上面是平常比较常用的方法。

下面来介绍全面一点的方法…

在这里插入图片描述


很多时候开发者需要删除文件。

可能是他错误地创建了文件,

或者不再需要该文件。

无论出于何种原因,

都有一些方法可以通过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 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_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删除文件有任何疑问。
请在下面的评论部分中告诉我们。


👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/4005.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

硬件语言Verilog HDL牛客刷题day02 组合逻辑部分

1.VL11 4位数值比较器电路 1.题目: 某4位数值比较器的功能表如下。请用Verilog语言采用门级描述方式,实现此4位数值比较器。 2.解题代码: timescale 1ns/1nsmodule comparator_4(input [3:0] A ,input [3:0] B ,output …

Cortex-A7常用汇编指令

Cortex-A7常用汇编指令 本节我们将介绍一些常用的 Cortex-A7汇编指令,如果想系统的了解 Cortex-A7的所有汇 编指令请参考《 ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition.pdf》的 A4章节。 处理器内部数据传输指令 使用处理器做的最多事情就是…

黑马点评笔记(自用)

1.优惠卷秒杀 (1)全局唯一ID 订单如果用自增,容易被猜到交易量,且数据量大的话分成多个表,都是自增,容易出现重复。所以用全局ID生成器,Redis独立自增不会重复,但安全性不保证&#…

Vue Nginx 配置跨域

1、方案1:Nginx配置跨域,Vue不用配置vite代理 1.nginx 配置SSL证书 listen *:443;server_name gitlab.xxxxxx.com;server_tokens off; ## Dont show the nginx version number, a security best practicessl on;ssl_certificate /etc/gitlab/xxxxxx.c…

俺的面试qwq

1.JavaScript的基本数据类型都有什么? 布尔型、数值型、字符串、数组、null、undefined、object、symbol 2.数组方法pop()push() unshift() shift()的作用? pop()删除最后一个元素、push()在数组最后增加元素、unshift()在数组最前面增加元素、shift()删除第一个元素 3.box-s…

【ChatGPTAIGC研讨社】“iPhone时刻”:未来已来

文章目录前言一、ChaGPT&AIGC研讨社简介二、ChatGPT&AIGC研讨社的优势1.丰富充实的资料库Github开源:[ChatGPT_Project](https://github.com/shawshany/ChatGPT_Project)飞书资料库2.重量级嘉宾3.工作机会4.投资资源总结前言 去年年末,ChatGPT以…

Linux编译器-gcc/g++ 使用

在介绍gcc/g的使用前我们先了解一下两者的不同 gcc时主要编译c语言,而g主要编译c的,但是两者的选项是相同的,因此我们以gcc和c语言为例来讲解。背景知识 gcc和g都是编译器其核心作用将文本类文件翻译成二进制可执行 那么其过程是怎样的&…

dolphinscheduler 2.0.6 资源中心改造方案二:通过NFS挂载共享目录

目录调度资源中心存储概要安装NFS服务器客户端调度验证关闭SFTP开关(可忽略)重新上传资源文件worker执行任务验证服务器woker客户端worker其它nfs共享目录的配置文件/etc/exports说明调度资源中心存储概要 针对现有的单机存储可以做哪些扩展?…

免费1年服务器,部署个ChatGPT专属网页版

作者:小傅哥 博客:https://bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 白皮袄个免费1年服务器,部署个ChatGPT专属网页版! api.openai.com port 443: Connection timed out 你是…

【统计学习】25个必须掌握的数据分析基础概念

16个必须掌握的数据分析基础概念1. 描述性统计2. 假设性检验2.1 参数检验2.2 非参数检验3. 置信度分析4. 列联表分析5. 相关分析6. 方差分析7. 回归分析8. 聚类分析9. 判别分析10. 主成分分析11. 因子分析12. 时间序列分析13. 生存分析14. 典型相关分析15. ROC分析16. 偏差-方差…

MATLAB中quiver函数用法

目录 语法 说明 示例 创建箭头图 禁用自动缩放 绘制梯度和等高线 指定箭头颜色 指定箭头图的坐标区 在创建后修改箭头图 quiver函数的功能是绘制箭头图或向量图。 语法 quiver(X,Y,U,V) quiver(U,V) quiver(___,scale) quiver(___,LineSpec) quiver(___,LineSpec,fi…

List和list迭代器的模拟实现

list的使用 我们list表示带头双向循环链表。 我们再找我们的list中每个数据的位置&#xff0c;就不可以再用我们的下标[]了。 我们就必须用迭代器。 void test_list1() {list<int> lt;lt.push_back(1);lt.push_back(2);lt.push_back(3);lt.push_back(4);list<int>:…

MySQL基础-视图

文章目录MySQL基础-视图一、数据库对象二、视图概念三、视图的使用1、创建视图2、查看视图3、修改视图4、修改/删除视图四、总结MySQL基础-视图 一、数据库对象 对象描述表(TABLE)表是存储数据的逻辑单元&#xff0c;以行和列的形式存在&#xff0c;列就是字段&#xff0c;行…

STM32输出PWM波控制电机转速,红外循迹避障智能车+L298N的详细使用手册、接线方法及工作原理,有代码

智能循迹红外避障小车 本设计的完整的系统主要包括STM32单片机最小系统、L298n电机驱动&#xff0c;超声波 &#xff0c;舵机 &#xff0c;红外模块等。寻迹小车相信大家都已经耳熟能祥了。 我们在这里主要讲一下L298N驱动电机和单片机输出PWM控制电机转速。 本设计软件系统采…

这个时候了,你还不会不知道JavaMail API吧

一、概述 1.1 简述 JavaMail API 顾名思义&#xff0c;提供给开发者处理电子邮件相关的编程接口&#xff0c;它是Sun发布的用来处理email的API&#xff0c;其提供独立于平台且与协议无关的框架来构建邮件和消息传递应用。JavaMail API 提供了一组抽象类&#xff0c;用于定义组…

第十四届蓝桥杯三月真题刷题训练——第 24 天

目录 第 1 题&#xff1a;旋转 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码&#xff1a; 思路&#xff1a; 第 2 题&#xff1a;附近最小_单调队列模板 代码&#xff1a; 第 3 题&#xff1a;扫地机器人_二分 题目描述 输入描述 输出描述 输入输出样…

【蓝桥杯】​蓝桥杯——每日四道编程题(两道真题+两道模拟)​| 第 二 天

专栏&#xff1a; 蓝桥杯——每日四道编程题&#xff08;两道真题两道模拟&#xff09; “蓝桥杯就要开始了&#xff0c;这些题刷到就是赚到” ₍ᐢ..ᐢ₎♡ 另一个专栏&#xff1a; 蓝桥杯——每日四道填空题&#xff08;两道真题两道模拟题&#xff09; 目录 第一道真题&…

Kafka 基础整理、 Springboot 简单整合

定义&#xff1a; Kafka 是一个分布式的基于发布/订阅默认的消息队列是一个开源的分布式事件流平台&#xff0c;被常用用于数据管道、流分析、数据集成、关键任务应用 消费模式&#xff1a; 点对点模式 (少用) 消费者主动拉取数据&#xff0c;消息收到后清除消息 发布/订阅模式…

【蓝桥杯嵌入式】第十四届蓝桥杯嵌入式[模拟赛2]客观题及详细题解

题1 解析 USART_CR1:控制寄存器1&#xff0c;其中的M位定义了数据字的长度&#xff0c;由软件对其设置和清零。USART_CR2:控制寄存器2。USART_BRR:波特率寄存器。USART_DR:数据寄存器。 (如果现场不记得&#xff0c;可以查阅芯片手册) 答案: A 题2 解析 在STM32微控制器中&a…

每日学术速递3.29

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.CC3D: Layout-Conditioned Generation of Compositional 3D Scenes 标题&#xff1a;CC3D&#xff1a;合成 3D 场景的布局条件生成 作者&#xff1a;Sherwin Bahmani, Jeong Joon …