파이썬 실습/GUI,윈도우 폴더 용량 체크 프로그램 만들기

파이썬 GUI/윈도우 폴더 용량체크 프로그램 만들기 - 3.파일 및 폴더 용량 체크2

파기차차 2023. 1. 6. 07:17
728x90
반응형
SMALL
728x90
반응형

ㅁ 개요

 

O 프로그램 소개

 

 

 - 이번 글은 이전글(2022.12.10 - [분류 전체보기] - 파이썬 GUI/윈도우 폴더 용량체크 프로그램 만들기 - 2.파일 및 폴더 용량 각 각 체크)에 이은 3번째 글로 파일 및 폴더의 사이즈를 하나의 함수로 체크하는 방법에 대하여 설명합니다.

 

 

 

 

 

 

O 완성된 프로그램 실행 화면

 

 

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

 

(1) 아래 소스에서와 같이 print()문으로 폴더와 파일 크기를 구하기 위하여 둘 다 하나의 get_size()함수를 호출하고 있는 것을 볼 수 있습니다.

 

 

 아래는 위 소스 실행 결과로 폴더의 크기와 파일의 크기가 정상적으로 나온것을 알 수 있습니다.

 

 

 

 

 


 

ㅁ 세부 내용

 

O 완성된 소스

 

 

소스 : 3.py( 파일 및 폴더 사이즈 체크)

import os

# 폴더 사이즈 확인
import os
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 get_size(path='.'):
    if os.path.isfile(path):
        return os.path.getsize(path)
    elif os.path.isdir(path):
        return get_dir_size(path)


print(get_size('./a'))

print(get_size('u.png'))

 

 

 

 

 

O 소스 다운로드 및 실행

 
 - 소스파일 다운로드 후 cmd 또는 파워쉘 등에서 아래와 같이 실행하시기 바랍니다.
 
 > python 3.py

 

 


 
 

O 주요 내용

 

1. 아래 소스에서 get_dir_size()함수는 이전 글에서 설명한 내용과 동일하며, 여기서는 get_size()함수 위주로 설명합니다.

get_size()함수의 인자로 파일 또는 폴더가 주어질 수 있는데,

인자가 파일인 경우, 'os.path.getsize(path)' 구문에 의해 파일 크기가 구해 집니다.

인자가 폴더인 경우, 이전에 만든 'get_dir_size(path)' 함수를 다시 호출하여 폴더의 크기를 구하게 됩니다.

 

 

 

 

 

 


 

 

O 소스 분석

 

1.

# 파일/폴더 둘다 사이즈 확인 시 아래 함수 사용
def get_size(path='.'):
    if os.path.isfile(path): #<-- 인자가 파일인 경우
        return os.path.getsize(path) # <-- os.path.getsize()함수로 파일의 크기를 구함
    elif os.path.isdir(path): # <-- 인자가 폴더인 경우
        return get_dir_size(path) # <-- get_dir_size()함수 호출

 

 


 

ㅁ 정리

 

O 우리가 배운 내용

 
 - 오늘은 파일 및 폴더의 사이즈를 하나의 함수로 구하는 방법에 대하여 알아보았습니다.
 
 
 
 
 - 오늘 우리가 배운 내용을 한줄로 정리해 보면 아래와 같습니다.
 
 
 > 1.인자가 폴더인 경우
elif os.path.isdir(path): # <-- 인자가 폴더인 경우
        return get_dir_size(path) # <-- get_dir_size()함수 호출
 

 

오늘은 여기까지이며, 위의 내용이 유익하셨다면, 좋아요와 구독 부탁드립니다.

 

 

감사합니다.

 

 

 

 

※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.

 

728x90
반응형
LIST