用Python脚本来删除指定容量以上的文件的教程


Posted in Python onMay 04, 2015

文件多了乱放, 突然有一天发现硬盘空间不够了, 于是写了个python脚本搜索所有大于10MB的文件,看看这些大文件有没有重复的副本,如果有,全部列出,以便手工删除

使用方式 加一个指定目录的参数

比如python redundant_remover.py /tmp

主要用到了stat模块,os、sys系统模块

import os, sys
#引入统计模块
from stat import *
BIG_FILE_THRESHOLD = 10000000L
dict1 = {}  # filesize 做 key, filename 做 value
dict2 = {}   # filename 做 key, filesize 做 value
def treewalk(path):
  try:
    for i in os.listdir(path):
      mode = os.stat(path+"/"+i).st_mode
      if S_ISDIR(mode) <> True:
        filename = path+"/"+i
        filesize = os.stat(filename).st_size
        if filesize > BIG_FILE_THRESHOLD:
          if filesize in dict1:           
            dict2[filename] = filesize
            dict2[dict1[filesize]]=filesize
          else:
            dict1[filesize] = filename         
      else:
        treewalk(path+"/"+i)
  except WindowsError:
    pass
def printdict(finaldict):
  for i_size in finaldict.values():
    print i_size
    for j_name in finaldict.keys():
      if finaldict[j_name] == i_size:
        print j_name
    print "\n"
if __name__=="__main__":
  treewalk(sys.argv[1])
  printdict(dict2)
Python 相关文章推荐
Python中的hypot()方法使用简介
May 18 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
利用python实现xml与数据库读取转换的方法
Jun 17 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
Python中的pack和unpack的使用
Mar 12 Python
python 矩阵增加一行或一列的实例
Apr 04 Python
Django 使用logging打印日志的实例
Apr 28 Python
Python socket实现多对多全双工通信的方法
Feb 13 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
Python变量作用域LEGB用法解析
Feb 04 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
Python OpenCV超详细讲解基本功能
Apr 02 Python
编写Python脚本来获取Google搜索结果的示例
May 04 #Python
编写Python脚本来实现最简单的FTP下载的教程
May 04 #Python
Python下线程之间的共享和释放示例
May 04 #Python
简单介绍Python中利用生成器实现的并发编程
May 04 #Python
简单分析Python中用fork()函数生成的子进程
May 04 #Python
python实现从字典中删除元素的方法
May 04 #Python
Python中利用原始套接字进行网络编程的示例
May 04 #Python
You might like
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
2019/10/18 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
js表头排序实现方法
2015/01/16 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
javascript中 try catch用法
2015/08/16 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
angularjs中ng-attr的用法详解
2016/12/31 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
React-Native做一个文本输入框组件的实现代码
2017/08/10 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
jQuery中ajax请求后台返回json数据并渲染HTML的方法
2018/08/08 jQuery
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
Django卸载之后重新安装的方法
2017/03/15 Python
Python中将变量按行写入txt文本中的方法
2018/04/03 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
python实现多层感知器
2019/01/18 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
Skyscanner新西兰:全球领先的旅游搜索网站
2019/08/26 全球购物
大学军训感言
2014/01/10 职场文书
《画杨桃》教学反思
2014/04/13 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
法人授权委托书范本
2014/09/17 职场文书
房屋产权证明书
2015/06/19 职场文书
jQuery ajax - getScript() 方法和getJSON方法
2021/05/14 jQuery
MySQL 视图(View)原理解析
2021/05/19 MySQL