본문 바로가기
IT 개인학습/Memo

Tempfile

by kiimy 2022. 5. 7.
728x90

사용 이유

프로그램 실행 중 일시적으로 데이터를 저장해야 하거나 많은 양의 데이터로 작업할 때 임시 파일이 필요할 수 있다. 이러한 종류의 파일은 데이터를 영구적으로 저장하고 싶지 않을 때 매우 유용

= 프로그램이 실행되는 동안 파일이나 디렉토리에 데이터를 임시로 쓰고 읽고 저장할 수 있다.

 

기본적으로 파일은 w+b 모드로 열린다.

즉, 열린 파일을 읽고 쓸 수 있다. 파일이 모든 유형의 데이터와 함께 작동할 수 있도록 바이너리 모드가 사용된다.

import tempfile

# TemporaryFile
with tempfile.NamedTemporaryFile() as temp:
    print(temp.name)
    temp.write(...)

# TemporaryDirectory
with tempfile.TemporaryDirectory() as tempDir:
    if os.path.exists(tempDir):
        print('temp dir: ', tempDir)
 
 
왜 임시폴더에 저장???
다운로드 -> 바로 열기 ->
100만장 넘게 처리할텐데 그걸 다 다운로드받으면 하드드라이브가 터져서 서버가 끊긴다
그래서 임시폴더에 저장한다음 메모리에만 이미지 저장하고 loop해서
메모리에는 최소한의 이미지만 저장되면서 반복되는 구조로 진행
temp folder는 캐시형태라서 쓰면 바로바로 지워짐

 

with as 구문

파일을 다루는 처리를 할때는 필수적으로 파일 오픈(open) 파일 닫기(close) 과정을 거치게 된다.

with ... as 구문을 사용하게 되면 파일을 열고 해당 구문이 끝나면 자동으로 닫힌다.

파일이나 특정 함수를 열고 닫아야 충돌이 없다. 파일을 처리하고자 할 경우에 항상 하는 일의 순서는 다음의 과정을 따르게 된다.

# 파일 오픈(open) 파일 닫기(close) 과정(= with as close 생략가능)
1. data_file = open('test.dat') ⇒ 파일을 열고 
2. print(data_file.readline(), end='') ⇒ 열은 파일을 처리하고
3. data_file.close() ⇒ 열어 놓은 파일을 닫는다.
728x90

'IT 개인학습 > Memo' 카테고리의 다른 글

Pyspark  (0) 2022.05.07
Encoding 인코딩  (0) 2022.05.07
정규표현식  (0) 2022.05.07
Deploy  (0) 2022.05.07
Jenkins 젠킨스  (0) 2022.05.07

댓글