스택큐힙리스트

open()를 사용하여 TemporaryFile을 열기 본문

카테고리 없음

open()를 사용하여 TemporaryFile을 열기

스택큐힙리스트 2023. 11. 5. 11:48
반응형

기존 라이브러리와 인터페이스하려고 하는데, 내장된 open() 함수를 사용하여 .json 파일을 읽는 데 사용합니다. 경로를 나타내는 문자열 또는 바이트 객체 또는 os.PathLike 프로토콜을 구현한 객체 중 하나를 사용할 수 있습니다.


내 함수는 사전을 생성하고 json.dump()을 사용하여 json으로 변환하지만, 해당 함수에 파일 경로가 필요한 상태에서 어떻게 전달해야 할지 잘 모릅니다.


아마도 이런 식으로 작동할 것 같지만, TemporaryFile의 os.PathLike 객체를 얻는 방법을 잘 모르겠습니다.


import tempfile
temp_file = tempfile.TemporaryFile('w')
json.dump('{test: 1}', fp=temp_file)
file = open(temp_file.path(), 'r')

답변 1

대신 NamedTemporaryFile() 객체를 생성하십시오. 이 객체는 전달할 수 있는 .name 속성이 있습니다:


from tempfile import NamedTemporaryFile
with NamedTemporaryFile('w') as jsonfile:
json.dump('{test: 1}', jsonfile)
jsonfile.flush() # 모든 데이터가 디스크로 플러시되었는지 확인
# 파일 이름을 문자열을 예상하는 무언가에 전달
open(jsonfile.name, 'r')

이미 열려있는 파일 객체를 열 때는 Windows에서 문제가 있을 수 있습니다 (허용되지 않음). 여기서는 파일 객체를 먼저 닫고 (삭제 옵션을 비활성화해야 함) 수동으로 삭제해야합니다:

임시 파일을 만들기 위해 tempfile 모듈을 불러옵니다.
import os
jsonfile = NamedTemporaryFile('w', delete=False)
try:
with jsonfile:
json.dump('{test: 1}', jsonfile)
# 파일 이름을 문자열을 기대하는 무언가에 전달합니다.
open(jsonfile.name, 'r')
finally:
os.unlink(jsonfile.name)

with 문은 블록이 종료될 때 파일이 자동으로 닫히게 합니다 (따라서 open() 호출에 도달할 때까지 닫히지 않습니다).

답변 2

open() 함수를 사용하여 TemporaryFile 열기
open() 함수는 Python에서 파일을 열 수 있는 내장 함수입니다. 이 함수를 사용하면 TemporaryFile이라는 임시 파일을 열 수 있습니다.
TemporaryFile이란, 프로그램이 실행되는 동안 일시적으로 사용되는 파일을 의미합니다. 이 파일은 일반적으로 메모리에 저장되며, 프로그램이 종료되면 자동으로 삭제됩니다. 이러한 임시 파일은 일시적인 데이터를 저장하거나, 다른 파일의 작업 중에 발생하는 임시 데이터를 저장하는 데 사용됩니다.
Python의 open() 함수를 사용하여 TemporaryFile을 열면 다음과 같은 절차를 따라야 합니다. 먼저, tempfile 모듈을 임포트하고, tempfile.TemporaryFile() 함수를 호출하여 TemporaryFile 객체를 생성해야 합니다. 이 객체는 with 구문과 함께 사용될 수 있습니다.
어떤 이유로든 TemporaryFile을 열 때는 파일의 모드를 지정해야 합니다. open() 함수의 두 번째 매개변수로 'w' 또는 'r'과 같은 모드 문자열을 전달하여 파일을 쓰기 모드 또는 읽기 모드로 열 수 있습니다. 예를 들어, open(mode='w')를 사용하면 파일을 쓰기 모드로 열게 됩니다.
TemporaryFile은 일반적으로 이진 파일로 사용됩니다. 따라서 'wb' 또는 'rb'와 같은 이진 파일 모드로 TemporaryFile을 열 수 있습니다.
TemporaryFile을 사용하여 데이터를 저장 또는 읽는 경우, 적절한 인코딩을 사용해야 합니다. 한국어 데이터의 경우, UTF-8과 같은 UTF 인코딩을 사용하는 것이 좋습니다. 이를 위해 open() 함수를 호출할 때 'utf-8'과 같은 인코딩 옵션을 지정할 수 있습니다.
이러한 방법으로 open() 함수를 사용하여 TemporaryFile을 열 수 있습니다. TemporaryFile은 프로그램 실행 도중에 임시적으로 사용되는 파일로서, 일시적이고 임시로 생성되는 데이터를 저장할 때 유용합니다. 임시 파일의 자동 삭제와 같은 편리한 기능으로 인해, 코드의 단순화와 메모리 관리를 용이하게 할 수 있습니다.

반응형
Comments