文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>python26实例[根据正则表达式来清理文件夹]

python26实例[根据正则表达式来清理文件夹]

时间:2011-03-22  来源:iTech


清除指定目录下的子文件, 只保留与给定的正则表达式匹配且最后创建的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()

 

完!

相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载