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列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Sep 24 Python
Python机器学习之决策树算法实例详解
Dec 06 Python
Python自定义线程类简单示例
Mar 23 Python
python pycurl验证basic和digest认证的方法
May 02 Python
Tensorflow实现卷积神经网络的详细代码
May 24 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
python将txt文件读入为np.array的方法
Oct 30 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
图文详解matlab原始处理图像几何变换
Jul 09 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内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
PHP使用Http Post请求发送Json对象数据代码解析
2020/07/16 PHP
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
详解如何在angular2中获取节点
2017/11/23 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
vue中动态设置meta标签和title标签的方法
2018/07/11 Javascript
vue 本地环境跨域请求proxyTable的方法
2018/09/19 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
2018/10/26 Javascript
[11:01]2014DOTA2西雅图邀请赛 冷冷带你探秘威斯汀
2014/07/08 DOTA
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
Python列表生成器的循环技巧分享
2015/03/06 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
python复制文件到指定目录的实例
2018/04/27 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
python-OpenCV 实现将数组转换成灰度图和彩图
2020/01/09 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python OpenCV中的numpy与图像类型转换操作
2020/12/11 Python
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Linux Interview Questions For software testers
2013/05/17 面试题
项目经理的岗位职责
2013/11/23 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
高中历史教学反思
2014/02/08 职场文书
办理房产过户的委托书
2014/09/14 职场文书
追讨欠款律师函
2015/06/24 职场文书