[혼공학습단] 혼자 만들면서 공부하는 파이썬
[혼자 만들면서 공부하는 파이썬][혼공학습단 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 패키지 사용

