tempfile은 「자동으로 정리되는 임시 파일·디렉토리를 만드는」 표준 라이브러리입니다.
일회용 작업 공간이 필요한 거의 모든 곳에서 유용합니다.
임시 파일.
with tempfile.NamedTemporaryFile(mode="w", suffix=".txt", delete=True) as f: f.write("임시 데이터"); print(f.name).
with 블록을 떠나면 자동으로 파일이 삭제됩니다.
윈도우에서는 「열린 동안 다른 프로세스가 접근 못 함」 제약이 있어 주의가 필요합니다.
임시 디렉토리.
with tempfile.TemporaryDirectory() as tmpdir: print(tmpdir) — "/tmp/tmpXXXXX" 같은 임시 폴더.
그 안에서 자유롭게 파일을 만들고, with를 떠나면 폴더 통째로 삭제됩니다.
「작업 중간 산출물 모아 두고 끝나면 정리」 패턴에 표준입니다.
비유하자면 tempfile은 「사용한 뒤 자동으로 치워지는 일회용 종이컵」과 같습니다.
직접 「수동으로 만든 폴더 → 작업 → 마지막에 정리」할 필요 없이, with 블록만 끝나면 자동으로 정리되니 「치우는 것을 잊는」 실수가 사라집니다.
활용 예시.
1) 데이터 변환 중간 파일.
2) 테스트 시 격리된 작업 공간.
3) PDF 생성 같은 외부 도구 호출 시 입력·출력 임시 파일.
4) 큰 다운로드 파일을 잠시 받아 처리 후 삭제.
모든 곳에서 「수동 임시 파일 관리」보다 훨씬 안전합니다.
한 줄 요약
tempfile은 자동으로 정리되는 임시 파일(NamedTemporaryFile)·디렉토리(TemporaryDirectory)를 만들어 「작업 중간 공간」 관리를 안전하고 깔끔하게 해 줍니다.
더 알아볼 것
- mkstemp·mkdtemp — 수동 정리 버전
- tempfile의 보안 — 안전한 권한
- TMPDIR 환경변수의 영향