Python删除空文件和空文件夹的方法


Posted in Python onJuly 14, 2015

本文实例讲述了Python删除空文件和空文件夹的方法。分享给大家供大家参考。具体实现方法如下:

#-*- coding:cp936 -*-
"""
os.walk()
函数声明:walk(top,topdown=True,onerror=None)
1>参数top表示需要遍历的目录树的路径
2>参数topdown的默认值是"True",表示首先返回目录树下的文件,然后在遍历目录树的子目录.Topdown的值为"False"时,
则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件
3>参数onerror的默认值是"None",表示忽略文件遍历时产生的错误.如果不为空,则提供一个自定义函数提示错误信息后继续
遍历或抛出异常中止遍历
4>该函数返回一个元组,该元组有3个元素,这3个元素分别表示每次遍历的路径名,目录列表和文件列表
在2.5版中新增加了一个叫partition的函数,它可以做什么呢?举一个小例子:
>>> 'http://www.donews.net/limodou'.partition('://')
('http', '://', 'www.donews.net/limodou')
>>> 'file:/a.html'.partition('://')
('file:/a.html', ", ")
从第一个例子可以看出,它用来根据指定的分隔符将字符串进行分割,如果字符串包含指定的分隔符,则返回一个3元的tuple,
第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串。第二个例子说明,如果找不到指定的分隔符,
则返回仍然是一个3元的tuple,第一个为整个字符串,第二和第三个为空串
"""
import os, sys
def remove_empty_dir(path):
 print path
 while(path[-1] == "\\"):
 path = path[:-1]
 print path
 a = {}
 for root, dirs, files in os.walk(path, False):
 if len(files) == 0:
  a[root] = 0
 else:
  for file in files: #对文件列表进行扫描
   try:
   fn = os.path.join(root, file) #将路径名和文件名拼接起来
   size = os.path.getsize(fn) #获取文件名大小
   if size != 0:
   b = root
   while(b != path):
    a[b] = 1
    b = b.rpartition("\\")[0] #保存上一级目录名
   a[path] = 1
   else: 
   try:
    os.remove(fn) #删除文件名为空的文件
    a[root] = 0
   except (WindowsError):
    b = root
    while(b != path):
    a[b] = 1
    b = b.rpartition("\\")[0]
    a[path] = 1
   except WindowsError:
   b = root
   while(b != path):
    a[b] = 1
    b = b.rpartition("\\")[0]
   a[path] = 1
   if a[root]:
   break;
 empty_dirs = []
 for i, j in a.iteritems():
 if j == 0:
  print i
  empty_dirs.insert(0, i)
 del a
 empty_dirs.sort(reverse=True) 
 for i in empty_dirs:
 try:
  os.rmdir(i)  #删除目录
  print "%s 删掉了!!" % (i)
 except (WindowsError):
  print "%s 删不掉!!" % (i)
if __name__ == "__main__":
 remove_empty_dir('f:\\b')

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
浅谈python函数之作用域(python3.5)
Oct 27 Python
Python处理文本换行符实例代码
Feb 03 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Django之PopUp的具体实现方法
Aug 31 Python
Python 私有化操作实例分析
Nov 21 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
如何快速理解python的垃圾回收机制
Sep 01 Python
Python 实现键盘鼠标按键模拟
Nov 18 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 #Python
Python删除windows垃圾文件的方法
Jul 14 #Python
Python简单计算文件夹大小的方法
Jul 14 #Python
Python判断直线和矩形是否相交的方法
Jul 14 #Python
Python下Fabric的简单部署方法
Jul 14 #Python
python简单获取数组元素个数的方法
Jul 13 #Python
python连接字符串的方法小结
Jul 13 #Python
You might like
用PHP读取IMAP邮件
2006/10/09 PHP
php代码运行时间查看类代码分享
2011/08/06 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
PHP计算一年多少个星期和每周的开始和结束日期
2014/07/01 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
Avengerls vs KG BO3 第三场2.18
2021/03/10 DOTA
JQuery从头学起第三讲
2010/07/06 Javascript
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
JS+CSS实现带有碰撞缓冲效果的竖向导航条代码
2015/09/15 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
浅谈在js传递参数中含加号(+)的处理方式
2016/10/11 Javascript
NodeJS处理Express中异步错误
2017/03/26 NodeJs
vue2.0与bootstrap3实现列表分页效果
2017/11/28 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
django之自定义软删除Model的方法
2019/08/14 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
第一批党的群众路线教育实践活动工作总结
2014/03/03 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
研发工程师岗位职责
2014/04/28 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
面试通知短信
2015/04/20 职场文书
环保建议书作文300字
2015/09/14 职场文书
导游词之山东孔庙
2019/11/04 职场文书
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android
Node.js实现爬取网站图片的示例代码
2022/04/04 NodeJs