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下载FTP上的文件夹的实现代码
Feb 10 Python
python之import机制详解
Jul 03 Python
python实现数独算法实例
Jun 09 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
Django models.py应用实现过程详解
Jul 29 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
pygame编写音乐播放器的实现代码示例
Nov 19 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
Python函数参数定义及传递方式解析
Jun 10 Python
python操作链表的示例代码
Sep 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
phpwind中的数据库操作类
2007/01/02 PHP
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
prototype与jquery下Ajax实现的差别
2009/09/13 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
JavaScript和CSS交互的方法汇总
2014/12/02 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
详解JavaScript中的自定义事件编写
2016/05/10 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
win系统下nodejs环境安装配置
2017/05/04 NodeJs
vue实现pdf导出解决生成canvas模糊等问题(推荐)
2018/10/18 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
python中的闭包用法实例详解
2015/05/05 Python
python搭建微信公众平台
2016/02/09 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
Python语言生成水仙花数代码示例
2017/12/18 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
2019/08/27 Python
关于sys.stdout和print的区别详解
2019/12/05 Python
如何基于python测量代码运行时间
2019/12/25 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
2020/09/23 Python
python中字典增加和删除使用方法
2020/09/30 Python
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
最新的咖啡店创业计划书
2013/12/30 职场文书
铲车司机岗位职责
2014/03/15 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
创业计划书之养殖业
2019/10/11 职场文书
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
总结几个非常实用的Python库
2021/06/26 Python