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中使用正则表达式的方法
Aug 13 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
Python装饰器模式定义与用法分析
Aug 06 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
Django组件之cookie与session的使用方法
Jan 10 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
Apr 26 Python
Django 创建后台,配置sqlite3教程
Nov 18 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python实现将元组中的元素作为参数传入函数的操作
Jun 05 Python
基于tensorflow权重文件的解读
May 26 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php时间戳格式化显示友好的时间函数分享
2014/10/21 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
php利用imagemagick实现复古老照片效果实例
2017/02/16 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
JavaScript实现表格快速变色效果代码
2015/08/19 Javascript
js文字横向滚动特效
2015/11/11 Javascript
BootStrap glyphicons 字体图标实现方法
2016/05/01 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
2017/01/11 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
微信小程序商品详情页的底部弹出框效果
2020/11/16 Javascript
vue如何通过id从列表页跳转到对应的详情页
2018/05/01 Javascript
vue实现计算器功能
2020/02/22 Javascript
python学习必备知识汇总
2017/09/08 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
美国男装连锁零售商:Men’s Wearhouse
2016/10/14 全球购物
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
经济管理专业自荐信
2013/12/30 职场文书
高考备战决心书
2014/03/11 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
二手房购房意向书范本
2014/04/01 职场文书
转正申请报告格式
2015/05/15 职场文书
地道战观后感300字
2015/06/04 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers