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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
python通过函数属性实现全局变量的方法
May 16 Python
基python实现多线程网页爬虫
Sep 06 Python
简单了解Python下用于监视文件系统的pyinotify包
Nov 13 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
Python Scapy随心所欲研究TCP协议栈
Nov 20 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
Jun 23 Python
Django封装交互接口代码
Jul 12 Python
Python开发.exe小工具的详细步骤
Jan 27 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
php PDO异常处理详解
2016/11/20 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
JS实现关键字搜索时的相关下拉字段效果
2014/08/05 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
Node.js + Redis Sorted Set实现任务队列
2016/09/19 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
Vue实现的父组件向子组件传值功能示例
2019/01/19 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
[02:36]DOTA2英雄基础教程 一击致命幻影刺客
2013/12/06 DOTA
对python 多个分隔符split 的实例详解
2018/12/20 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
2019/07/04 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python对列表的操作知识点详解
2019/08/20 Python
python连接打印机实现打印文档、图片、pdf文件等功能
2020/02/07 Python
学生会竞选自荐信
2013/10/12 职场文书
银行求职推荐信范文
2013/11/30 职场文书
服务质量承诺书
2014/03/27 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
《青山不老》教学反思
2016/02/22 职场文书
四则混合运算教学反思
2016/02/23 职场文书
小学毕业教师寄语
2019/06/21 职场文书
nginx中封禁ip和允许内网ip访问的实现示例
2022/03/17 Servers