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错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
Python 解决中文写入Excel时抛异常的问题
May 03 Python
Python 实现Windows开机运行某软件的方法
Oct 14 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
May 31 Python
详解Django模版中加载静态文件配置方法
Jul 21 Python
Python Django 实现简单注册功能过程详解
Jul 29 Python
PIL对上传到Django的图片进行处理并保存的实例
Aug 07 Python
解决Atom安装Hydrogen无法运行python3的问题
Aug 28 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
Django视图扩展类知识点详解
Oct 25 Python
python isinstance函数用法详解
Feb 13 Python
使用Django实现商城验证码模块的方法
Jun 01 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实现HTML生成PDF文件的方法
2014/11/07 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
2015/11/24 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
JQuery validate插件Remote用法大全
2016/05/15 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
JS给按钮添加跳转功能类似a标签
2017/05/30 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
2017/12/12 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
vue 实现左右拖拽元素并且不超过他的父元素的宽度
2018/11/30 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
使用vue-router切换页面时,获取上一页url以及当前页面url的方法
2019/05/06 Javascript
python flask实现分页效果
2017/06/27 Python
python的exec、eval使用分析
2017/12/11 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
Python zip()函数用法实例分析
2018/03/17 Python
Django app配置多个数据库代码实例
2019/12/17 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
python 制作网站小说下载器
2021/02/20 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
工商管理专业实习生自我鉴定
2013/09/29 职场文书
超市5.1促销活动
2014/01/15 职场文书
自荐信需注意事项
2014/01/25 职场文书
六一节目主持词
2014/04/01 职场文书
幼儿园家长寄语
2014/04/02 职场文书
村党建工作汇报材料
2014/11/02 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
MySQL中varchar和char类型的区别
2021/11/17 MySQL