Python 임시 파일 과 폴 더 만 들 기
프로그램 이 실 행 될 때 임시 파일 이나 디 렉 터 리 를 만들어 야 하 며,사용 이 끝 난 후에 자동 으로 없 앨 수 있 기 를 바 랍 니 다.
해결 방안
tempfile모듈 에는 이 임 무 를 완성 할 수 있 는 함수 가 많다.익명 의 임시 파일 을 만 들 기 위해 사용 할 수 있 습 니 다tempfile.TemporaryFile :
from tempfile import TemporaryFile
with TemporaryFile('w+t') as f:
# Read/write to the file
f.write('Hello World
')
f.write('Testing
')
# Seek back to beginning and read the data
f.seek(0)
data = f.read()
# Temporary file is destroyed또는,만약 당신 이 좋아한다 면,당신 은 이렇게 임시 파일 을 사용 할 수 있 습 니 다:
f = TemporaryFile('w+t')
# Use the temporary file
...
f.close()
# File is destroyedTemporaryFile() 의 첫 번 째 매개 변 수 는 파일 모드 입 니 다.보통 텍스트 모드 사용w+t ,바 이 너 리 모드 사용w+b입 니 다.이 모드 는 읽 기와 쓰기 동작 을 동시에 지원 합 니 다.파일 을 닫 고 모드 를 바 꿀 때 파일 이 실제로 존재 하지 않 기 때 문 입 니 다.TemporaryFile() 내 장 된open() 함수 와 같은 인자 도 지원 합 니 다.예 를 들 면:
with TemporaryFile('w+t', encoding='utf-8', errors='ignore') as f:
...대부분의 유 닉 스 시스템 에 서 는TemporaryFile() 을 통 해 만 든 파일 이 익명 이 고 디 렉 터 리 조차 없다.이 규 제 를 깨 고 싶다 면NamedTemporaryFile()으로 대체 할 수 있다.예 를 들 면:
from tempfile import NamedTemporaryFile
with NamedTemporaryFile('w+t') as f:
print('filename is:', f.name)
...
# File automatically destroyed여기 서 열 린 파일f.name 속성 은 이 임시 파일 의 파일 이름 을 포함 합 니 다.이 파일 을 열 려 면 파일 이름 을 다른 코드 에 전달 해 야 할 때 유용 합 니 다.TemporaryFile() 와 마찬가지 로 결과 파일 이 닫 힐 때 자동 으로 삭 제 됩 니 다.그 러 고 싶 지 않다 면 키워드 인자delete=False 를 전달 하면 된다.예 를 들 면:
with NamedTemporaryFile('w+t', delete=False) as f:
print('filename is:', f.name)
...임시 디 렉 터 리 를 만 들 기 위해 사용 할 수 있 습 니 다tempfile.TemporaryDirectory().예 를 들 면:
from tempfile import TemporaryDirectory
with TemporaryDirectory() as dirname:
print('dirname is:', dirname)
# Use the directory
...
# Directory and all contents destroyed토론 하 다.TemporaryFile(),NamedTemporaryFile() ,TemporaryDirectory() 함 수 는 임시 파일 디 렉 터 리 를 처리 하 는 가장 간단 한 방식 일 것 입 니 다.모든 생 성과 정리 절 차 를 자동 으로 처리 하기 때 문 입 니 다.더 낮은 단계 에서 임시 파일 과 디 렉 터 리 를 만 들 수 있 습 니 다.예 를 들 면:
>>> import tempfile
>>> tempfile.mkstemp()
(3, '/var/folders/7W/7WZl5sfZEF0pljrEB1UMWE+++TI/-Tmp-/tmp7fefhv')
>>> tempfile.mkdtemp()
'/var/folders/7W/7WZl5sfZEF0pljrEB1UMWE+++TI/-Tmp-/tmp5wvcv6'
>>>그러나 이 함수 들 은 더 이상 관 리 를 하지 않 을 것 이다.예 를 들 어 함수mkstemp() 는 원본 OS 파일 설명자 만 되 돌려 주 고 실제 파일 대상 으로 변환 해 야 합 니 다.마찬가지 로 너 는 스스로 이 서류 들 을 정리 해 야 한다.일반적으로 임시 파일 은 시스템 의 기본 위치 에서 생 성 됩 니 다.예 를 들 어
mkdtemp() 또는 유사 한 곳 입 니 다.실제 위 치 를 얻 기 위해mkstemp() 함 수 를 사용 할 수 있 습 니 다.예 를 들 면:
>>> tempfile.gettempdir()
'/var/folders/7W/7WZl5sfZEF0pljrEB1UMWE+++TI/-Tmp-'
>>>임시 파일 과 관련 된 모든 함 수 는 키워드 인자/var/tmp ,tempfile.gettempdir() ,prefix 를 사용 하여 디 렉 터 리 와 이름 규칙 을 정의 할 수 있 습 니 다.예 를 들 면:
>>> f = NamedTemporaryFile(prefix='mytemp', suffix='.txt', dir='/tmp')
>>> f.name
'/tmp/mytemp8ee899.txt'
>>>마지막 으로 가능 한 한 가장 안전 한 방식 으로suffix모듈 을 사용 하여 임시 파일 을 만 드 는 것 도 있다.현재 사용자 에 게 만 접근 권한 을 부여 하고 파일 을 만 드 는 과정 에서 경쟁 조건 을 피 하 는 조 치 를 취 하 는 것 을 포함한다.주의해 야 할 것 은 서로 다른 플랫폼 이 다 를 수 있다 는 것 이다.따라서 더 많은 세부 사항 을 알 아 보기 위해 읽 는 것 이 좋다공식 문서.이상 은 Python 이 임시 파일 과 폴 더 를 만 드 는 상세 한 내용 입 니 다.Python 임시 파일 과 폴 더 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.