Development/파이썬 [Python]

[Python] 파이썬 디렉토리 크기 확인

요체크다 2022. 11. 22. 12:39
반응형

 업무용 PC 및 노트북을 사용하다 보면 간혹 Windows OS Drive 사이즈가 부족한 경우가 발생하는데, 이때 어느 디렉토리에서 많이 사용 중인지 확인 후 필요없는 파일들을 찾아서 삭제를 해주어야 합니다.

 

 많은 디렉토리를 하나씩 클릭하여 사이즈를 확인할 수 도 있겠지만, 이건 너~무 비효율적인 방법입니다. 이런 경우 파이썬을 통해 손쉽게 확인이 가능합니다.

 

 아래 코드를 참조하여 나만의 디렉토리 체크 프로그램을 만들어 업무에 활용해 보시기 바랍니다.

import glob, os
import time


# 현재시간 정보
def cur_time_func():
    # Current Time
    now = time.localtime()
    check_time = "%04d-%02d-%02d %02d:%02d:%02d" % (now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_min, now.tm_sec)

    return check_time


# 디렉토리 사이즈 계산
def get_dir_size(path='.'):
    total = 0
    with os.scandir(path) as it:
        for entry in it:
            if entry.is_file():
                total += entry.stat().st_size
            elif entry.is_dir():
                total += get_dir_size(entry.path)
    return total


def main():
    dir_dict = dict()
    for d in glob.glob("D:\\ProgramFiles\\*" + os.path.sep):
        try:
            dir_size_calc = format(int(get_dir_size(d))/int(1024)/int(1024), ".1f")
            dir_dict[d] = float(dir_size_calc)
        except Exception as os_err:
            print(cur_time_func(), '[Error]', d, os_err)
    print(cur_time_func(), '[info] Directory list check completed.')
    print(cur_time_func(), '[info] Directory size check completed.')
    dir_sort_dict = sorted(dir_dict.items(), key=lambda item: item[1], reverse=True)
    print('')
    print('================================================================')
    print('[ Directory Size Result ]')
    print('----------------------------------------------------------------')
    for i in dir_sort_dict:
        dir_name = i[0]
        dir_size = i[1]
        print(dir_name, dir_size,'MB')
    print('----------------------------------------------------------------')
    print('================================================================')


if __name__ == '__main__':
    main()

실행 결과는 아래와 같습니다.

2022-11-22 12:37:01 [info] Directory list check completed.
2022-11-22 12:37:01 [info] Directory size check completed.

================================================================
[ Directory Size Result ]
----------------------------------------------------------------
D:\ProgramFiles\AndroidStudio\ 1700.9 MB
D:\ProgramFiles\IBM_DS\ 395.8 MB
D:\ProgramFiles\IBM_DS_Storage_tool\ 387.6 MB
D:\ProgramFiles\Go\ 369.6 MB
D:\ProgramFiles\Microsoft VS Code\ 325.5 MB
D:\ProgramFiles\VirtualBox_old\ 264.0 MB
D:\ProgramFiles\Telegram\ 250.8 MB
D:\ProgramFiles\DBeaver\ 159.4 MB
D:\ProgramFiles\Mib_Browser\ 134.8 MB
D:\ProgramFiles\Grafana_Server_6.7.4\ 132.4 MB
D:\ProgramFiles\Grafana-6.7.4\ 132.1 MB
D:\ProgramFiles\WinMerge\ 20.5 MB
D:\ProgramFiles\resource_hacker 518 Kr\ 10.4 MB
----------------------------------------------------------------
================================================================

 

반응형