Python编程基础:第三十五节 文件删除Delete a File
第三十五节 文件删除Delete a File
- 前言
- 实践
前言
我们这一节来介绍如何删除一个文件,这里需要用到函数os.remove(path)
用于删除指定路径下的文件,os.rmdir(path)
用于删除指定路径下的空文件夹,shutil.rmtree(path)
用于删除指定路径下的文件夹及其子文件夹。
实践
我们先来学习删除一个文件,这里同样以之前用到的lyric.txt
为例进行展示:
import os
path = r"C:\Users\shen_student\Desktop\lyric.txt"
os.remove(path)
可见该文件被删除了,那么如果我们删除一个不存在的文件会发生什么呢?我们将上述代码再运行一次,会发现程序报错了:
>>> FileNotFoundError: [WinError 2] 系统找不到指定的文件。: 'C:\\Users\\shen_student\\Desktop\\lyric.txt'
他告诉你找不到指定的文件,这里我们可以用Python的异常相关知识避免程序遇到异常时中断执行:
import os
path = r"C:\Users\shen_student\Desktop\lyric.txt"
try:os.remove(path)
except FileNotFoundError:print("That file was not found")
else:print(path + " was deleted")
我们运行上述代码,发现当指定文件不存在时会打印That file was not found,当文件存在时会打印C:\Users\shen_student\Desktop\temp.txt was deleted。
那么我们是否可以用os.remove(path)
这个函数删掉一个空文件夹呢?我们新建一个空文件夹命名为temp,然后执行代码:
import os
path = r"C:\Users\shen_student\Desktop\temp"
try:os.remove(path)
except FileNotFoundError:print("That file was not found")
else:print(path + " was deleted")
会发现程序报错了,错误信息为:
>>> PermissionError: [WinError 5] 拒绝访问。: 'C:\\Users\\shen_student\\Desktop\\temp'
也即无法访问这个路径,这是因为os.remove(path)
只能删除文件,不能删除文件夹,如果我们想删除文件夹,需要用到os.rmdir(path)
这个函数:
import os
path = r"C:\Users\shen_student\Desktop\temp"
try:os.rmdir(path)
except FileNotFoundError:print("That file was not found")
else:print(path + " was deleted")
我们执行上述代码会发现空文件夹已经被成功删除并打印C:\Users\shen_student\Desktop\temp was deleted。如果再执行一次便会打印That file was not found,因为此时文件夹已经不存在了,所以他会抛出异常信息,也即文件不存在。如果我们文件夹还包含子文件时,用上述代码删除文件夹会发生什么呢?
我们在temp文件夹下新建temp文件夹,然后执行上述代码:
>>> OSError: [WinError 145] 目录不是空的。: 'C:\\Users\\shen_student\\Desktop\\temp'
发现程序报错了,告诉你文件夹不是空的,这是因为os.rmdir(path)
只能删除空文件夹,如果要删除包含子文件的文件夹,我们需要用到函数shutil.rmtree(path)
。并且,我们也可以用异常处理机制避免上述异常中断:
import os
import shutil
path = r"C:\Users\shen_student\Desktop\temp"
try:shutil.rmtree(path)
except FileNotFoundError:print("That file was not found")
except PermissionError:print("You do not have permission to delete that")
except OSError:print("You cannot delete that using that fuction")
else:print(path + " was deleted")
>>> C:\Users\shen_student\Desktop\temp was deleted
可以发现文件夹已经被成功删除了。
以上便是文件删除的全部内容,感谢大家的收藏、点赞、评论。我们下一节将介绍模块(Modules),敬请期待~
Python编程基础:第三十五节 文件删除Delete a File相关推荐
- Python编程基础:第二十五节 args参数*args
第二十五节 args参数*args 前言 实践 前言 我们目前学习到的函数的参数个数都是固定的,那么我们是否可以指定任意多个参数呢?其实是可以的,这里就用到了args参数,它可以将用户指定的任意多个参 ...
- Python编程基础:第十五节 二维列表2D Lists
第十五节 二维列表2D Lists 前言 实践 前言 列表中的元素可以是任何形式,整型.浮点型.字符串型,甚至是一个列表.当列表的元素也是列表时,我们将其称为二维列表. 实践 我们先来创建多个一维列表 ...
- Python编程基础:第三十四节 文件移动Move a File
第三十四节 文件移动Move a File 前言 实践 前言 当我们需要将一个文件/文件夹移动到另一个指定路径时,就需要用到shutil.move()函数,该函数需要指定两个参数shutil.move ...
- Python编程基础:第二十九节 异常Exception
第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...
- Python编程基础:第二十四节 作用域Scope
第二十四节 作用域Scope 前言 实践 前言 在Python中每一个变量都有其自己的生命周期,我们一般将变量分为全局变量与局部变量,全局变量是指在整个代码内部都可以访问到的变量,局部变量是指只有在函 ...
- Python编程基础:第十九节 索引Index Operator
第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...
- Python编程基础:第二十六节 kwargs参数**kwargs
第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...
- Python编程基础:第十六节 元组Tuple
第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...
- Python编程基础:第十四节 列表Lists
第十四节 列表Lists 前言 实践 前言 列表是一种非常常用的数据结构.我们可以用它来存储各种类型的数据. 实践 我们先来创建一个名为food的列表,里面存储了一系列我喜欢的食物名称: food = ...
最新文章
- 如何理解:先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法,即对于机器数为负数,则有[X]原=[[X]补]补。
- ci框架——辅助函数
- 第二次作业——小学生四则运算
- [转载]对称加密DES和TripleDES
- 金数据表单接口请求(php)
- Java程序员们最常犯的10个错误
- 安卓版有道词典的离线词库-《21世纪大英汉词典》等
- 《麦肯锡方法》第2章探索分析问题的方法-思维导图
- 诗词大全给力版_思维导图 | 6种高效记忆法,教你速背古诗词!
- 匈牙利算法【匹配问题】
- SharePoint Online 触发的Automate工作流的调试
- Android开发之内容提供者——创建自己的ContentProvider(详解)
- C语言函数题-输入多个单词,统计以指定字母开头的单词个数
- 自动激活win7系统的bat文件
- 八键电话号码的字母组合
- 解决小米10上 Google Play 卡在正在等待下载,以及从服务器检索信息时出错。DF-DFERH-01的问题
- pandas pandas中stack()与unstack()函数用法
- element之el-scrollbar
- 【微信小程序】上传文件到阿里云OSS
- 开场舞蹈 #普及组#