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之从if开始语句的征程
Sep 14 Python
跟老齐学Python之做一个小游戏
Sep 28 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
详解python中的线程与线程池
May 10 Python
python读取.mat文件的数据及实例代码
Jul 12 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
Python3标准库glob文件名模式匹配的问题
Mar 13 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
Python 如何测试文件是否存在
Jul 31 Python
python使用建议与技巧分享(二)
Aug 17 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速度全攻略
2006/10/09 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP生成静态HTML页面最简单方法示例
2015/04/09 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
php如何获取Http请求
2020/04/30 PHP
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
Document对象内容集合(比较全)
2010/09/06 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
Extjs优化(一)删除冗余代码提高运行速度
2013/04/15 Javascript
给js文件传参数(详解)
2014/07/13 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
简单谈谈json跨域
2016/03/13 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python 判断一个进程是否存在
2009/04/09 Python
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python写入数据到MP3文件中的方法
2015/07/10 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
python根据文章标题内容自动生成摘要的实例
2019/02/21 Python
Django中的模型类设计及展示示例详解
2020/05/29 Python
奠基仪式主持词
2014/03/20 职场文书
物流管理专业求职信
2014/05/29 职场文书
中级会计大学生职业生涯规划书
2014/09/16 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python