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字符编码
Nov 12 Python
Django数据库操作的实例(增删改查)
Sep 04 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
python+POP3实现批量下载邮件附件
Jun 19 Python
CentOS7下python3.7.0安装教程
Jul 30 Python
Python单元和文档测试实例详解
Apr 11 Python
python3实现斐波那契数列(4种方法)
Jul 15 Python
python 读取修改pcap包的例子
Jul 23 Python
通过实例解析Python return运行原理
Mar 04 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
Python帮你解决手机qq微信内存占用太多问题
Feb 15 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
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
2017/10/25 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
解决jquery .ajax 在IE下卡死问题的解决方法
2009/10/26 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
2009/12/27 Javascript
Javascript计算时间差的函数分享
2011/07/04 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
一个简单的动态加载js和css的jquery代码
2014/09/01 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
js中的触发事件对象event.srcElement与event.target详解
2017/03/15 Javascript
webpack+vue中使用别名路径引用静态图片地址
2017/11/20 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
python不换行之end=与逗号的意思及用途
2017/11/21 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
python队列Queue的详解
2019/05/10 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
python实现发送QQ邮件(可加附件)
2020/12/23 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
应届生污水处理求职信
2013/11/06 职场文书
校园安全广播稿
2014/02/08 职场文书
化工工艺设计求职信
2014/06/25 职场文书
2014年工商所工作总结
2014/12/09 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js