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实现简单的多任务mysql转xml的方法
Feb 08 Python
Python实现Linux中的du命令
Jun 12 Python
Python内置函数—vars的具体使用方法
Dec 04 Python
python 显示数组全部元素的方法
Apr 19 Python
Python获取指定字符前面的所有字符方法
May 02 Python
python sys.argv[]用法实例详解
May 25 Python
python实现雨滴下落到地面效果
Jun 21 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
Python多线程原理与用法实例剖析
Jan 22 Python
Django多个app urls配置代码实例
Nov 26 Python
python邮件中附加文字、html、图片、附件实现方法
Jan 04 Python
Python操作Excel的学习笔记
Feb 18 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
apache rewrite_module模块使用教程
2008/01/10 PHP
PHP session有效期session.gc_maxlifetime
2011/04/20 PHP
使用php实现下载生成某链接快捷方式的解决方法
2013/05/07 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
PHP错误机制知识汇总
2016/03/24 PHP
豆瓣网的jquery代码实例
2008/06/15 Javascript
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
Node.js的特点详解
2017/02/03 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
vue项目中mock.js的使用及基本用法
2019/05/22 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
vue Cli 环境删除与重装教程 - 版本文档
2020/09/11 Javascript
小程序自定义弹框效果
2020/11/16 Javascript
[03:09]2014DOTA2国际邀请赛 Mushi前队友送上祝福
2014/07/12 DOTA
Python ZipFile模块详解
2013/11/01 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Python pickle模块实现对象序列化
2019/11/22 Python
Windows10+anacond+GPU+pytorch安装详细过程
2020/03/24 Python
Python dict的常用方法示例代码
2020/06/23 Python
美国花布包包品牌:Vera Bradley
2017/08/11 全球购物
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
行政管理专业推荐信
2013/11/02 职场文书
安全生产先进个人材料
2014/02/06 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
涨价通知
2015/04/23 职场文书
matlab xlabel位置的设置方式
2021/05/21 Python