tempfile — 임시 파일과 디렉터리 생성
tempfile — 임시 파일과 디렉터리 생성
이 모듈은 임시 파일과 디렉터리를 생성합니다. 모든 플랫폼에서 작동합니다. 임시 파일은 프로그램이 종료된 후 나중에 정리가 가능하도록 TemporaryFile, NamedTemporaryFile, TemporaryDirectory와 같은 클래스를 사용합니다.
본문
이 모듈은 고수준 인터페이스와 저수준 인터페이스를 모두 제공합니다. 고수준 인터페이스는 임시 파일과 디렉터리를 만들고 자동으로 정리하는 데 사용됩니다. 저수준 인터페이스는 임시 파일 이름을 만들고 상황을 직접 관리하는 데 사용됩니다.
고수준 인터페이스
- *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,newline은open()에 전달됩니다.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)