python删除文件、清空目录的实现方法


Posted in Python onSeptember 23, 2020

Python os.remove() 方法

os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。

在Unix, Windows中有效

以下实例演示了 remove() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())

# 移除
os.remove("aa.txt")

# 移除后列出目录
print "移除后 : %s" %os.listdir(os.getcwd())

执行以上程序输出结果为:

目录为:
[ 'a1.txt','aa.txt','resume.doc' ]
移除后 :
[ 'a1.txt','resume.doc' ]

Python os.removedirs() 方法

os.removedirs() 方法用于递归删除目录。像rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(它基本上被忽略,因为它一般意味着你文件夹不为空)。

以下实例演示了 removedirs() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())

# 移除
os.removedirs("/test")

# 列出移除后的目录
print "移除后目录为:" %os.listdir(os.getcwd())

执行以上程序输出结果为:

目录为:
[  'a1.txt','resume.doc','a3.py','test' ]
移除后目录为:
[  'a1.txt','resume.doc','a3.py' ]

Python os.rmdir() 方法

os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError。

以下实例演示了 rmdir() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

# 列出目录
print "目录为: %s"%os.listdir(os.getcwd())

# 删除路径
os.rmdir("mydir")

# 列出重命名后的目录
print "目录为: %s" %os.listdir(os.getcwd())

执行以上程序输出结果为:

目录为:
[  'a1.txt','resume.doc','a3.py','mydir' ]
目录为:
[  'a1.txt','resume.doc','a3.py' ]

Python os.unlink() 方法

os.unlink() 方法用于删除文件,如果文件是一个目录则返回一个错误。

以下实例演示了 unlink() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os, sys

# 列出目录
print "目录为: %s" %os.listdir(os.getcwd())

os.unlink("aa.txt")

# 删除后的目录
print "删除后的目录为 : %s" %os.listdir(os.getcwd())

执行以上程序输出结果为:

目录为:
[ 'a1.txt','aa.txt','resume.doc']
删除后的目录为 :
[ 'a1.txt','resume.doc' ]

其他的总结

1、remove() 同 unlink() 的功能是一样的

在Windows系统中,删除一个正在使用的文件,将抛出异常。在Unix中,目录表中的记录被删除,但文件的存储还在。

#使用os.unlink()和os.remove()来删除文件
#!/user/local/bin/python2.7
# -*- coding:utf-8 -*-
import os
my_file = 'D:/text.txt'
if os.path.exists(my_file):
 #删除文件,可使用以下两种方法。
 os.remove(my_file)
 #os.unlink(my_file)
else:
 print 'no such file:%s'%my_file

2、递归删除目录和文件的方法(类似DOS命令DeleteTree):

代码如下:

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))

3、Python清空指定文件夹下所有文件的方法: 

 这个需求很简单:需要在执行某些代码前清空指定的文件夹,如果直接用os.remove(),可能出现因文件夹中文件被占用而无法删除,解决方法也很简单,先强制删除文件夹,再重新建同名文件夹即可:

import shutil 
shutil.rmtree('要清空的文件夹名') 
os.mkdir('要清空的文件夹名')

注:可参考这里对shutil模块的介绍:https://3water.com/article/110329.htm

如果想把一个文件从一个文件夹移动到另一个文件夹,并同时重命名,用shutil也很简单:

shutil.move('原文件夹/原文件名','目标文件夹/目标文件名')

4、python 删除非空文件夹

一般删除文件时使用os库,然后利用os.remove(path)即可完成删除,如果删除空文件夹则可使用os.removedirs(path)即可,
 但是如果需要删除整个文件夹,且文件夹非空时使用os.removedirs(path)就会报错了,此时可以使用shutil库,该库为python内置库,是一个对文件及文件夹高级操作的库,可以与os库互补完成一些操作,如文件夹的整体复制,移动文件夹,对文件重命名等。

import os
import shutil
os.remove(path) #删除文件
os.removedirs(path) #删除空文件夹
shutil.rmtree(path) #递归删除文件夹

参考文献:

1、https://blog.csdn.net/muwinter/article/details/77196261 2018.5.25
 2、https://blog.csdn.net/qysh123/article/details/51923606 2018.5.25
 3、http://www.runoob.com/python/os-unlink.html 2018.5.25
 4、http://www.runoob.com/python/os-rmdir.html 2018.5.25
 5、http://www.runoob.com/python/os-removedirs.html 2018.5.25
 6、http://www.runoob.com/python/os-remove.html 2018.5.25

到此这篇关于python删除文件、清空目录的实现方法的文章就介绍到这了,更多相关python删除文件、清空目录内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中apply函数的用法实例教程
Jul 31 Python
spyder常用快捷键(分享)
Jul 19 Python
利用Python如何批量更新服务器文件
Jul 29 Python
破解安装Pycharm的方法
Oct 19 Python
python可视化实现代码
Jan 15 Python
Django REST framework视图的用法
Jan 16 Python
浅谈Python中函数的定义及其调用方法
Jul 19 Python
解决Pycharm 包已经下载,但是运行代码提示找不到模块的问题
Aug 31 Python
Pycharm 字体大小调整设置的方法实现
Sep 27 Python
Python pip install如何修改默认下载路径
Apr 29 Python
解决Python数据可视化中文部分显示方块问题
May 16 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
详解Anaconda 的安装教程
Sep 23 #Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 #Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
Sep 23 #Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 #Python
python通过函数名调用函数的几种场景
Sep 23 #Python
Python如何执行系统命令
Sep 23 #Python
Python SMTP发送电子邮件的示例
Sep 23 #Python
You might like
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
YII Framework框架教程之国际化实现方法
2016/03/14 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
原生JS实现圆环拖拽效果
2017/04/07 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
vue搜索页开发实例代码详解(热门搜索,历史搜索,淘宝接口演示)
2020/04/11 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
如何使用gpu.js改善JavaScript的性能
2020/12/01 Javascript
Python中logging模块的用法实例
2014/09/29 Python
Python自定义scrapy中间模块避免重复采集的方法
2015/04/07 Python
改进Django中的表单的简单方法
2015/07/17 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
利用python画出折线图
2018/07/26 Python
python模糊图片过滤的方法
2018/12/14 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python3中eval函数用法使用简介
2019/08/02 Python
python 并发编程 阻塞IO模型原理解析
2019/08/20 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
Python类的继承super相关原理解析
2020/10/22 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
解决HTML5手机端页面缩放的问题
2017/10/27 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
澳大利亚领先的皮肤诊所:Skin Matrix(抗衰老、痤疮专家、药妆护肤)
2018/05/20 全球购物
学雷锋志愿服务月活动总结
2014/03/09 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
2015年学校工作总结范文
2015/04/20 职场文书
消防演习感想
2015/08/10 职场文书
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL