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实现豆瓣图片下载的方法
May 25 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
Python SQLite3简介
Feb 22 Python
python使用response.read()接收json数据的实例
Dec 19 Python
详解用Python实现自动化监控远程服务器
May 18 Python
对python 中class与变量的使用方法详解
Jun 26 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
解决pycharm中的run和debug失效无法点击运行
Jun 09 Python
最新Python idle下载、安装与使用教程图文详解
Nov 28 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设计模式之命令模式的深入解析
2013/06/13 PHP
php数组转换js数组操作及json_encode的用法详解
2013/10/26 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
jquery库或JS文件在eclipse下报错问题解决方法
2014/04/17 Javascript
JS实现的倒计时效果实例(2则实例)
2015/12/23 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
[43:49]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python爬虫代理IP池实现方法
2017/01/05 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
Python递归函数实例讲解
2019/02/27 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
Python3+Appium安装使用教程
2019/07/05 Python
django 快速启动数据库客户端程序的方法示例
2019/08/16 Python
基于pandas中expand的作用详解
2019/12/17 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
开发人员所需要知道的HTML5性能分析面面观
2012/07/05 HTML / CSS
html5实现移动端适配完美写法
2017/11/16 HTML / CSS
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
入党自我评价优缺点
2014/01/25 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
青岛导游词
2015/02/12 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android
解决Oracle数据库用户密码过期
2022/05/11 Oracle