Python-tempfile 临时文件

发布于 2025-01-16 15:51:41 字数 1787 浏览 2 评论 0

NamedTemporaryFile

最常用的方法,生成一个有名称的临时文件

import tempfile

# create a temporary file and write some data to it
fp = tempfile.TemporaryFile()
fp.write(b'Hello world!')
# read data from file
fp.seek(0)
fp.read()
b'Hello world!'
# close the file, it will be removed
fp.close()

# create a temporary file using a context manager
with tempfile.TemporaryFile() as fp:
    fp.write(b'Hello world!')
    fp.seek(0)
    fp.read()
    # b'Hello world!'
# file is now closed and removed
  • 不删除临时文件的方法

tempfile.NamedTemporaryFile 默认在使用完了后会将临时文件删除,可以通过调整参数实现不删除文件

f = tempfile.NamedTemporaryFile(delete=False)
f.name
f.write(b"Hello World!\n")
f.close()
os.path.exists(f.name)  # True
os.unlink(f.name)
os.path.exists(f.name)  # False

TemporaryDirectory

有名称的临时文件夹, New in version 3.2

with tempfile.TemporaryDirectory() as tmpdirname:
    print('created temporary directory', tmpdirname)
# directory and contents have been removed

如果想要在 python3.2 之前使用临时文件夹的功能,可以自己用上下文管理器写一个

import errno
import shutil
from tempfile import mkdtemp
from contextlib import contextmanager

@contextmanager
def TemporaryDirectory(suffix='', prefix=None, dir=None):
    name = mkdtemp(suffix=suffix, prefix=prefix, dir=dir)
    try:
        yield name
    finally:
        try:
            shutil.rmtree(name)
        except OSError as e:
            # ENOENT - no such file or directory
            if e.errno != errno.ENOENT:
                raise e

gettempdir

获取系统的临时目录路径 tempfile.gettempdir()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

上一篇:

下一篇:

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

清风不识月

暂无简介

文章
评论
25 人气
更多

推荐作者

迎风吟唱

文章 0 评论 0

qq_hXErI

文章 0 评论 0

茶底世界

文章 0 评论 0

捎一片雪花

文章 0 评论 0

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文