Python 实现指定目录下 删除指定大小的文件

import os, sys
from stat import *
BIG_FILE_THRESHOLD = 6000L #1000000L
dict1 = {}  #
dict2 = {}   #
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
	os.remove(j_name)
    print "\n"
if __name__=="__main__":
  treewalk(sys.argv[1])
  printdict(dict2)

  使用方法 remove c:/xx

时间: 2024-12-25 16:11:33

Python 实现指定目录下 删除指定大小的文件的相关文章

删除指定目录下的指定后缀的文件

1 import java.io.*; 2 import javax.swing.*; 3 public class Delete{ 4 public static void main(String[] args)throws Exception{ 5 String target = JOptionPane.showInputDialog(null,"请输入您要清理垃圾的目录:"); 6 File[] fs = new File(target).listFiles(new Filena

复制指定目录下的指定文件,并修改后缀名 很重要,也很难!!!

package cn.idcast2; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilenameFilter; im

【C#】递归搜索指定目录下的指定项目(文件或目录)

先别急着喷,请听我解释. 诚然可以使用现成的Directory类下的GetFiles.GetDirectories.GetFileSystemEntries这几个方法实现同样的功能,但请相信我不是蛋疼,原因是这几个方法在遇上[System Volume Information]这种目录时,极有可能会给你个拒绝访问的异常,想跳过都不行.所以没办法,重新实现了一下. 实现说明: - 仍然是基于对Directory类的几个方法的封装进行实现,只是没有使用它们的searchPattern和searchO

JAVA输出指定目录下的子目录和子文件

题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数组 循环遍历输出这个数组元素 输出名称之后,接着判断这个元素是文件还是目录 如果是目录,继续调用本方法来输出子目录 代码如下: /** * 输出指定目录下的所有子目录和子文件 * * @author DXY * */ public class HelloFile { public static vo

python删除指定目录下的指定文件和文件夹

具体代码: #coding:utf-8import os,sys,platformclass RemoveTagFile(object): path=None def removeFile(self,path,remove_list,retain_list): #path后面要跟/ self.path=path system_test=platform.system() if(system_test=='Windows'): path_last=self.path[-1] if(path_las

删除指定目录下的指定后缀文件

1 package org.zln.module1.demo1; 2 3 import org.apache.log4j.Logger; 4 5 import java.io.File; 6 7 /** 8 * 删除指定根目录下,及其子目录中,指定后缀的文件 9 * Created by coolkid on 2015/6/13 0013. 10 */ 11 12 public class DeleteSuffix { 13 /*默认待删除文件后缀*/ 14 private static fin

利用python os模块搜索指定目录下包含指定字符的文件

Python内置的os模块也可以直接调用操作系统提供的接口函数. os.listdir()可以列出给定目录下的文件和下级目录 os.path.isfile()方法可以验证该文件是否真的存在,注意这里需要完整路径或者相对当前目录下的相对路径. import os def find(dir,name): #print(dir) for i in [x for x in os.listdir(dir) if os.path.isfile(os.path.join(dir,x)) and name in

【复制指定目录下的指定类型文件,并修改后缀名】

package com.companyname.common.test; import java.io.*; /** * @Description * @Author Created by shusheng. * @Email [email protected] * @Date 2018/12/2 */ public class CopyFolderDemo { public static void main(String[] args) throws IOException { // 封装目录

递归遍历指定目录下所有指定的文件并删除

有一台电脑中毒,几乎每个文件夹下都复制了几个文件,用win7自带的索引搜索出近6万个文件,想全选删除直接死机.没办法,用批处理. 核心语句如下: @echo off for /f "delims=" %%i in ('dir /s /b Recovery+*') do ( del /s /q %%i) 说明: dir /s 表示递归查找,/b 只显示目录和文件名,如果不加会显示时间等信息,"Recovery+*"是病毒产生的文件名的一部分,以这个开头的有几个,所以用