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中pip安装非PyPI官网第三方库的方法
Jun 02 Python
python实现按任意键继续执行程序
Dec 30 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
Nov 11 Python
python实现画圆功能
Jan 25 Python
python2.6.6如何升级到python2.7.14
Apr 08 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
Python中字符串List按照长度排序
Jul 01 Python
django使用django-apscheduler 实现定时任务的例子
Jul 20 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
Nov 07 Python
python语言的优势是什么
Jun 17 Python
详解Python生成器和基于生成器的协程
Jun 03 Python
Python实现灰色关联分析与结果可视化的详细代码
Mar 25 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
jQuery技巧总结
2011/01/01 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
2016/04/06 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
JS实现快速比较两个字符串中包含有相同数字的方法
2017/09/11 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
js实现打字小游戏
2019/12/17 Javascript
JS代码优化的8点建议
2020/02/04 Javascript
python 写入csv乱码问题解决方法
2016/10/23 Python
Python实现学校管理系统
2018/01/11 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python变量赋值方法(可变与不可变)
2019/01/12 Python
python画双y轴图像的示例代码
2019/07/07 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
2020/04/19 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
市场推广策划方案
2014/06/02 职场文书
通信工程专业求职信
2014/06/04 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
执行力心得体会范文
2016/01/11 职场文书
利用Python第三方库实现预测NBA比赛结果
2021/06/21 Python
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android