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 相关文章推荐
你应该知道的python列表去重方法
Jan 17 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python运维之获取系统CPU信息的实现方法
Jun 11 Python
python中的常量和变量代码详解
Jul 25 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python列表list保留顺序去重的实例
Dec 14 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
深入了解python中元类的相关知识
Aug 29 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
python 中关于pycharm选择运行环境的问题
Oct 31 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生成二维码的两种方法(带logo图像)
2014/03/14 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php实现的常见排序算法汇总
2014/09/08 PHP
php实现webservice实例
2014/11/06 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
通过PHP简单实例介绍文件上传
2015/12/16 PHP
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
PHP信号处理机制的操作代码讲解
2019/04/19 PHP
ie和firefox中img对象区别的困惑
2006/12/27 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
JS 中LocalStorage和SessionStorage的使用
2017/08/17 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
快速解决element的autofocus失效问题
2020/09/08 Javascript
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Python爬虫JSON及JSONPath运行原理详解
2020/06/04 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
运动会通讯稿200字
2014/02/16 职场文书
2014年实验室工作总结
2014/12/03 职场文书
学校重阳节活动总结
2015/03/24 职场文书
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript