>  기사  >  백엔드 개발  >  Python은 시스템에서 불필요한 대용량 파일을 제거합니다.

Python은 시스템에서 불필요한 대용량 파일을 제거합니다.

高洛峰
高洛峰원래의
2016-10-18 10:44:431397검색

여기저기 흩어져 있는 파일이 너무 많았는데 어느 날 갑자기 하드디스크 공간이 부족하다는 걸 깨닫고, 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)


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.