tempfile — 임시 파일과 디렉터리 생성

tempfile — 임시 파일과 디렉터리 생성

이 모듈은 임시 파일과 디렉터리를 생성합니다. 모든 플랫폼에서 작동합니다. 임시 파일은 프로그램이 종료된 후 나중에 정리가 가능하도록 TemporaryFile, NamedTemporaryFile, TemporaryDirectory와 같은 클래스를 사용합니다.

출처: Python documentation

본문

이 모듈은 고수준 인터페이스와 저수준 인터페이스를 모두 제공합니다. 고수준 인터페이스는 임시 파일과 디렉터리를 만들고 자동으로 정리하는 데 사용됩니다. 저수준 인터페이스는 임시 파일 이름을 만들고 상황을 직접 관리하는 데 사용됩니다.

고수준 인터페이스

  • *tempfile.TemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, , errors=None) — 임시 파일 객체를 반환합니다. 파일은 읽기와 쓰기 모두로 열리고, 사용 후 자동으로 삭제되도록 구성됩니다. 파일이 닫히면 삭제됩니다. mode는 'w+b'가 기본값이며 열기 모드입니다. buffering, encoding, errors, newlineopen()에 전달됩니다. suffix, prefix, dir은 파일 이름의 일부를 지정합니다.
  • *tempfile.NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, , errors=None, delete=True) — 파일이 파일 시스템에서 이름을 가지는 임시 파일 객체를 반환합니다. 파일이 닫히고 delete가 참이면 자동으로 삭제됩니다. 파일 객체가 닫힐 때 삭제됩니다.
  • *tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, , errors=None) — 파일 내용이 max_size 바이트를 초과할 때까지 메모리에 저장되는 임시 파일 객체를 반환합니다. max_size를 초과하면 디스크의 임시 파일로 전환됩니다. max_size가 0이거나 음수이면 내용은 전혀 디스크로 플러시되지 않습니다. rollover() 메서드를 호출하면 버퍼가 디스크로 강제 플러시됩니다. fileno()가 호출되면 자동으로 롤오버됩니다.
  • *tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None, ignore_cleanup_errors=False, , delete=True) — 디렉터리 항목으로 사용할 수 있는 임시 디렉터리를 만듭니다. 컨텍스트 관리자로 사용되며, 종료 시 디렉터리 내용이 삭제됩니다. 반환 객체는 path 속성을 가집니다. 컨텍스트 관리자를 닫으면 디렉터리와 그 내용이 삭제됩니다.
  • tempfile.mkstemp(suffix=None, prefix=None, dir=None, text=False) — 가장 안전한 방법으로 임시 파일을 만듭니다. 파일은 소유자만 읽고 쓸 수 있는 권한으로 생성되며, 파일 이름은 임의로 선택됩니다. 반환값은 (fd, name) 튜플입니다. text가 참이면 파일이 텍스트 모드로 열립니다. 파일 이름 생성은 tempfile 내부의 저수준 함수를 사용합니다.
  • tempfile.mkdtemp(suffix=None, prefix=None, dir=None) — 가장 안전한 방법으로 임시 디렉터리를 만듭니다. 디렉터리 이름은 임의로 선택됩니다. 반환값은 디렉터리 경로입니다.

저수준 인터페이스

  • tempfile.gettempdir() — 임시 파일을 만들 때 사용되는 디렉터리의 이름을 반환합니다. 이 함수는 TMPDIR, TEMP, TMP 환경 변수와 tempfile.tempdir을 고려합니다.
  • tempfile.gettempdirb()gettempdir()과 같지만 바이트 문자열을 반환합니다.
  • tempfile.gettempprefix() — 임시 파일 이름에 사용되는 파일 이름 접두사를 반환합니다.
  • tempfile.gettempprefixb()gettempprefix()과 같지만 바이트 문자열을 반환합니다.
  • tempfile.tempdir — 이 앱의 임시 파일이 저장될 디렉터리. 이 속성을 설정하면 그 경로가 사용됩니다.
  • tempfile.template — 더 이상 사용되지 않는 속성으로, tempnam()과 같은 구식 함수와 함께 사용됩니다.

예제

TemporaryFile을 사용하는 기본 예:

import tempfile

with tempfile.TemporaryFile(mode='w+t') as f:
    f.write('Hello world')
    f.seek(0)
    data = f.read()
    print(data)

더 알아보기 (Learn more)