[혼공학습단] 혼자 만들면서 공부하는 파이썬

[혼자 만들면서 공부하는 파이썬][혼공학습단 14기] 1주차_폴더 크기 측정 프로그램

핼리 halley 2025. 6. 30. 15:15

기본 숙제 ❘ 폴더 크기 측정 결과 화면 캡처하기


*

import json
from pathlib import Path
from filesize import out_dir

out_2_3=out_dir / f"{Path(__file__).stem}.json"

def dump_dirnames(base_dir:Path) -> None:
    dirs=[] #리스트 초기화
    for path in base_dir.iterdir(): #iterdir() 폴더의 모든 파일과 하위 폴더 목록 반환
        if path.is_dir(): #is_dir() 입력값이 디렉토리인지 확인
            dirs.append(path.as_posix())
    dirs_sorted=sorted(dirs)
    with open(out_2_3, "w",encoding="utf-8") as fp: #변수 fp에 저장
        json.dump(dirs_sorted, fp, ensure_ascii=False,indent=2) #dump() 데이터 상태 저장
        #ensure_ascii=False 한글 문자열 아스키 반환 변경 방지
        #indent 공백 (tap)

def load_dirnames()->list[str]:
    if out_2_3.is_file():
        with open(out_2_3, encoding="utf-8") as fp:
            return json.load(fp)
    return []

if __name__=="__main__":
    dump_dirnames(Path.home())

 

import json
from pathlib import Path
from filesize import out_dir
from  filesizeget import GetTotalFilesize
from savefilelist import load_dirnames

out_2_4 = out_dir / f"{Path(__file__).stem}.json"

def DumpFilesizeFromDirnames():
    dirs=load_dirnames()
    result={} #dict result 생성, key:경로,value:크기
    for path_str in dirs:
        path=Path(path_str)
        filesize=GetTotalFilesize(path,pattern="**/*") #"**/*" 현재경로 및 모든 하위 경로
        result[path.as_posix()]=filesize
    with open(out_2_4,"w",encoding="utf-8") as fp:
        json.dump(result,fp,ensure_ascii=False,indent=2)

def LoadFilesizePerDir()->dict[str,int]:
    if out_2_4.is_file():
        with open(out_2_4, encoding="utf-8") as fp:
            return json.load(fp)
    return {}
if __name__=="__main__":
    DumpFilesizeFromDirnames()

 

위 두 파일은 각각 폴더 목록 저장(소스코드 ch_01/step_2_3.py)(위), 폴더 크기 측정 실행(소스코드 ch_01/step_2_4.py)(아래) 이나 

실행 결과가 위와 같이 표시됨

^C -> 사용자가 이전 실행 중이던 프로세스를 Ctrl+C로 강제 중지함

d:; cd ~ -> 디버깅 모드에서 파일 실행

 

마지막 문장에

print("Hello, world!")

를 추가하여 이 부분이 정상 출력되는 것을 확인 함. 출력에 이상이 없음을 확인. 어떤 문제인지 확인 불가. 추후 확인 될 경우 내용 추가 요함.

 

*해결

output 파일 .json에서 실행 결과 확인 가능(바보)

파일 항상 열어놓을 것


데이터 전처리

:데이터 분석과 시각화를 위해 수집한 원본 데이터를 원하는 형태로 가공하는 과정

->matplotlib 패키지 사용

추가숙제 ❘ 폴더 크기 측정 프로그램 시각화
추가숙제 ❘ 폴더 크기 측정 프로그램 시각화