根据正则表达式来清理文件夹

http://www.cnblogs.com/itech/archive/2011/03/22/1991756.html

清除指定目录下的子文件, 只保留与给定的正则表达式匹配且最后创建的N个。

代码:

import os
import sys
import re
import shutil

def cleanUp(dir, regrex, num):
  if not os.path.exists(dir) and not os.path.isdir(dir) : 
    print ‘path %s is not existed or is not a directory‘ %dir
    return False

subfolderdict = {}
  for subI in os.listdir(dir):
    sf = os.path.join(dir,subI)
    if os.path.isdir(sf) and not re.match(regrex, subI) == None:
      sftime = os.path.getctime(sf)
      subfolderdict[sftime] = sf
    else:
      continue

subfolders = subfolderdict.keys()
  if len(subfolders) == 0 : return True
      
  subfolders.sort(reverse=True)
  n = int(num)
  if len(subfolders) >= n :
    subfolders = subfolders[n:]
  else: return True

if len(subfolders) == 0 : return True
  
  for sftime in subfolders:
    sf = subfolderdict[sftime]
    #shutil.rmtree(sf)
    print ‘%s is removed‘ % sf

return True

def usage():
  usage = ‘\n\
  Function:\n\
    Clean Up subfolders in (dir), as a result :\n\
    just keep the subfolders which are matched with (regrex), \n\
    and the number of the subfoler cannot more then (num).\n\
  Usage:\n\
    python %s dir regrex num\n\
  ‘ %sys.argv[0]
  print usage

if __name__ == ‘__main__‘:
  if len(sys.argv) == 4 :
    cleanUp(sys.argv[1],sys.argv[2],sys.argv[3])
  else:
    usage()

时间: 2024-11-13 06:36:59

根据正则表达式来清理文件夹的相关文章

手机文件夹为什么是英文?哪些可以删除?看完清理能多出10G内存

手机文件夹为什么是英文呢?相信这个问题苦恼了很多小伙伴,每次想清理文件夹都不知道怎么下手. 简单来说因为安卓系统是国外谷歌的,所以文件夹都是英文的,如果出现了国产系统,那文件夹就是中文了. 不过这里笔者教大家认识几个文件夹,删除后就能清理出10G内存! 如何找到这些文件夹 可以打开文件管理,然后点击内部存储,接着在点击右上角的[放大镜]按钮,之后在这输入文件夹名,就能快速找到需要删除的文件夹了. 可以直接删除的文件夹 1.Backup 中文名:备份 联系人.通话记录等备份数据都会保存在这个文件夹

关于Linux系统清理/tmp/文件夹的原理

转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html 我们知道,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能大家知识的就不多了,所以,今天我们就来剖析一个这两个问题. 在RHEL\CentOS\Fedora\系统中(本次实验是在RHEL6中进行的) 先 来看看tmpwatch这个命令,他的作用就是删除一段时间内不使用

Android手机里的垃圾文件和文件夹清理

SD卡中各个文件夹功能的最详尽分析SD卡用久了会有好多文件夹出现,大家看看都是干什么用~ 1..android_secure  是官方app2sd的产物,删了之后装到sd卡中的软件就无法使用了.2..Bluetooth  顾名思义,用蓝牙之后就会有这个.3..mobo  顾名思义,Moboplayer的缓存文件.4..QQ   顾名思义,QQ的缓存文件.5..quickoffice  顾名思义,quickoffice的缓存文件.6..switchpro  顾名思义,switchprowidget

x系统清理/tmp/文件夹的原理

转自:http://www.opsers.org/base/clean-up-on-the-linux-system-tmp-folder-you-may-want-to-know.html§ 我们知道,在Linux系统中/tmp文件夹里面的文件会被清空,至于多长时间被清空,如何清空的,可能大家知识的就不多了,所以,今天我们就来剖析一个这两个问题. 在RHEL\CentOS\Fedora\系统中(本次实验是在RHEL6中进行的) 先来看看tmpwatch这个命令,他的作用就是删除一段时间内不使用

CodeFolderClear 自动清理代码文件夹下无用文件的小程序及源码

最近常要用U盘拷贝代码,发现编译器生成的各种中间文件占用了大量的空间,手工删除起来费时费力,所以就萌生了写一个小工具搞定这一切都念头. 说干就干,晚上熬夜搞定! 小工具程序及源码工程的下载链接:    点击下载 用简单的方式进行处理,递归删除.下面统计量下要删除的文件: 工程目录下: 工程目录的判断依据: 有工程文件 *.vcxproj *.sdf *.suo *.user 生成目录(Debug/Release等)下的文件: *.obj *.cache *.exp *.ilk *.lastbui

磁盘清理的隐藏地带-Driverstore文件夹

在清理磁盘的时候很少涉及到目录为:c:\windows\system32\driverstore 的文件夹.DriverStore是Windows用来存放第3方驱动程序的,当你安装一个驱动时,对应的文件就会被拷贝到DriverStore.当你卸载驱动时,文件会从DriverStore中删除.如果你升级驱动时,Windows会保留旧版驱动,这样有问题时可以回滚.但是长此以往会留下很多驱动,有时会达到几十GB.那如何清理此文件夹哪?有两种方法:1.使用Windows提供的 PNPUTIL 命令行,但

手机别乱清理了,10秒删除这些英文文件夹,立刻腾出5G内存

相信大家都遇到过这种情况,手机用了一段时间就提示内存不足了,打开文件管理,想手动清理一下,却无从下手.今天小编就来为大家揭开英文文件夹的那些小秘密,让你大胆放心的清理垃圾文件,一起跟小编来看看吧. 1.AlipayAlipay这里主要存放的是手机的支付信息和记录,只要大家记得自己的支付APP账号和密码,这里的文件夹都是可以删除的. 2.cache当你在搜索框输入“cache”可以看到很多同名的文件夹,这些文件夹的意思就是缓存,即软件的缓存数据,直接删除也是可以的,给手机节省大部分的空间,赶紧尝试

Windows7文件夹转移清理臃肿的C盘

当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹 (xp下是Documents and Settings文件夹,而windows7和vista下是users和programdata文件夹)存放在C盘之下, 而且这些设置很不容易修改.这样的设置就会导致系统盘在用户使用的过程中越来越臃肿,系统运行速度越来越慢. 相信使用Windows的大部分用户都有此体验.这篇随笔将把默认在C盘的users\用户名文件夹转移到其它分区. 该文件夹不但存放着

[转]Windows7文件夹转移清理臃肿的C盘

当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista下是users和programdata文件夹)存放在C盘之下,而且这些设置很不容易修改.这样的设置就会导致系统盘在用户使用的过程中越来越臃肿,系统运行速度越来越慢.相信使用Windows的大部分用户都有此体验.这篇随笔将把默认在C盘的users\用户名文件夹转移到其它分区.该文件夹不但存放着"我的文