programing

파이썬에서 어떻게 tmp 파일을 만들 수 있습니까?

powerit 2023. 7. 22. 10:28
반응형

파이썬에서 어떻게 tmp 파일을 만들 수 있습니까?

파일의 경로를 참조하는 다음 기능이 있습니다.

some_obj.file_name(FILE_PATH)

여기서 FILE_PATH는 파일 경로의 문자열입니다.H:/path/FILE_NAME.ext

다음 문자열의 내용을 사용하여 파이썬 스크립트 내에 FILE_NAME.ext 파일을 만들고 싶습니다.

some_string = 'this is some content'

어떻게 하는 거지?Python 스크립트는 Linux 상자 안에 배치됩니다.

당신이 찾고 있는 것 같아요.

import tempfile
with tempfile.NamedTemporaryFile() as tmp:
    print(tmp.name)
    tmp.write(...)

그러나:

이름이 지정된 임시 파일이 열려 있는 동안 파일을 다시 여는 데 이름을 사용할 수 있는지 여부는 플랫폼마다 다릅니다(유닉스에서는 사용할 수 있지만 윈도우즈 NT 이상에서는 사용할 수 없음).

문제가 되는 경우:

import os, tempfile
tmp = tempfile.NamedTemporaryFile(delete=False)
try:
    print(tmp.name)
    tmp.write(...)
finally:
    tmp.close()
    os.unlink(tmp.name)

python을 위한 모듈이 있지만 간단한 파일 생성도 유용합니다.

new_file = open("path/to/FILE_NAME.ext", "w")

이제 당신은 그것에 쓸 수 있습니다.write방법:

new_file.write('this is some content')

와 함께tempfile모듈은 다음과 같이 보일 수 있습니다.

import tempfile

new_file, filename = tempfile.mkstemp()

print(filename)

os.write(new_file, "this is some content")
os.close(new_file)

와 함께mkstemp파일을 마친 후 파일을 삭제해야 합니다.다른 인수를 사용하여 파일의 디렉터리 및 이름에 영향을 줄 수 있습니다.


갱신하다

Emmet Speer가 올바르게 지적했듯이, 사용할 때 보안 고려 사항이 있습니다.mkstemp클라이언트 코드가 생성된 파일의 닫기/정리를 담당하기 때문입니다.링크에서 가져온 더 나은 처리 방법은 다음 스니펫입니다.

import os
import tempfile

fd, path = tempfile.mkstemp()
try:
    with os.fdopen(fd, 'w') as tmp:
        # do stuff with temp file
        tmp.write('stuff')
finally:
    os.remove(path)

os.fdopen파일 설명자를 Python 파일 개체로 래핑합니다. 이 개체는 다음과 같은 경우 자동으로 닫힙니다.with나가세요. 전화가 왔습니다.os.remove더 이상 필요하지 않은 경우 파일을 삭제합니다.

언급URL : https://stackoverflow.com/questions/8577137/how-can-i-create-a-tmp-file-in-python

반응형