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 解析XML文件
Apr 15 Python
python基础教程之序列详解
Aug 29 Python
django接入新浪微博OAuth的方法
Jun 29 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
Python实现抢购IPhone手机
Feb 07 Python
Python3解释器知识点总结
Feb 19 Python
Python PIL图片添加字体的例子
Aug 22 Python
python yield关键词案例测试
Oct 15 Python
pytorch中的自定义反向传播,求导实例
Jan 06 Python
Python能做什么
Jun 02 Python
Python爬虫开发与项目实战
Dec 16 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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP生成UTF8文件的方法
2010/05/15 PHP
通过table标签,PHP输出EXCEL的实现方法
2013/07/24 PHP
PHP 类与构造函数解析
2017/02/06 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
js屏蔽鼠标键盘(右键/Ctrl+N/Shift+F10/F11/F5刷新/退格键)
2013/01/24 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
angular.element方法汇总
2015/01/07 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
微信小程序 wxapp导航 navigator详解
2016/10/31 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
Python实现二分查找算法实例
2015/05/26 Python
python字典的常用方法总结
2019/07/31 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
Python数据存储之 h5py详解
2019/12/26 Python
Django操作session 的方法
2020/03/09 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
python爬虫利用代理池更换IP的方法步骤
2021/02/21 Python
如何获取某个日期是当月的最后一天
2013/12/05 面试题
幼儿园国庆节活动方案
2014/02/01 职场文书
幼教求职信
2014/03/12 职场文书
小学生寒假家长评语
2014/04/16 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android
微前端qiankun改造日渐庞大的项目教程
2022/06/21 Javascript