import os import sys import shutil from tqdm import tqdm class de_oversizefile(object): def __init__(self, sampleFile_dir, max_file_size,min_file_size,save_dir): """ :param sampleFile_dir: 样本文件所在目录 :param max_file_size: 样本文件最大的大小,单位MB :param min_file_size: 样本文件最小的大小,单位MB """ self.sampleFile_dir = sampleFile_dir self.max_file_size = max_file_size self.min_file_size=min_file_size self.save_dir=save_dir def filesizeFilter(self): """ 对过大的样本文件进行删除 :return: """ for root, dirs, files in os.walk(self.sampleFile_dir): for file in tqdm(files): # 获取文件所属目录 # 获取文件路径 file_path = os.path.join(root, file) root_dir = os.path.join(root, file) file_stats = os.stat(file_path) if (file_stats.st_size / (1024 * 1024) > self.max_file_size): shutil.copy(root_dir, self.save_dir) os.remove(file_path) print('删除文件' + file + '其大小为' + str(file_stats.st_size / (1024 * 1024)) + 'MB大于' + str( self.max_file_size) + 'MB,已将其保存在'+self.save_dir+'文件中,请查看') elif (file_stats.st_size / (1024 * 1024) < self.min_file_size): shutil.copy(root_dir, self.save_dir) os.remove(file_path) print('删除文件' + file + '其大小为' + str(file_stats.st_size / (1024 * 1024)) + 'MB小于' + str( self.min_file_size) + 'MB,已将其保存在'+self.save_dir+'文件中,请查看') else: print(file + '其大小为' + str(file_stats.st_size / (1024 * 1024))+ 'MB' +'为所需要的样本无需清除') print("已留下所需文件")