当前位置: 首页 > 面试题库 >

如何在Django中生成临时文件然后销毁

班宏毅
2023-03-14
问题内容

我正在做一些文件处理,为了生成文件,我需要从现有数据中生成一些临时文件,然后将该文件用作我函数的输入。

但是我很困惑我应该在哪里保存该文件然后删除它。

在用户会话后,是否有任何临时位置会自动删除文件


问题答案:

Python恰好有此目的的tempfile模块。您无需担心文件的位置/删除,它可以在所有受支持的平台上使用。

临时文件有三种类型:

  • tempfile.TemporaryFile -只是基本的临时文件,
  • tempfile.NamedTemporaryFile-“ 该函数的操作完全相同TemporaryFile(),只是保证文件在文件系统中具有可见的名称(在Unix上,目录条目未取消链接)。可以从文件对象的name属性中检索该名称。 ”,
  • tempfile.SpooledTemporaryFile-“ 该函数的运行方式完全相同TemporaryFile(),只是将数据假脱机到内存中,直到文件大小超过max_sizefileno()调用文件的方法为止,此时将内容写入磁盘,并按TemporaryFile()。进行操作。 ”,

编辑 :您要求的示例用法可能如下所示:

>>> with TemporaryFile() as f:
        f.write('abcdefg')
        f.seek(0)  # go back to the beginning of the file
        print(f.read())


abcdefg


 类似资料:
  • tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好。 tempfile 模块中常用的函数,如表 1 所示。 表 1 tempfile 模块常用函数及功能 tempfile 模块函数 功能描述 tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=Non

  • 看完这篇博文https://blog . starkandwayne . com/2015/05/23/uuid-primary-keys-in-PostgreSQL/ 我想知道更多关于Django是如何生成uuid的,因为我用它们作为我的pk。嗯,根据文档,https://docs.djangoproject.com/es/1.9/ref/models/fields/#uuidfield,Dja

  • 一、简介: 尽管SQLite的数据库是由单一文件构成,然而事实上在SQLite运行时却存在着一些隐含的临时文件,这些临时文件是出于不同的目的而存在的,对于开发者而言,它们是透明的,因此在开发的过程中我们并不需要关注它们的存在。尽管如此,如果能对这些临时文件的产生机制和应用场景有着很好的理解,那么对我们今后应用程序的优化和维护都是极有帮助的。在SQLite中主要产生以下七种临时文件,如: 1). 回

  • 我正在试着理解Gradle包装器是如何工作的。在很多源回购中,我看到如下结构: 我的问题: 如何/何时生成/?您是否只在项目首次创建时生成它们一次,是否每次提交/推送更改时都生成它们?以及它们是如何生成的? 与上述问题相同,但对于文件(和)? 有时我会在项目的目录中看到其他文件。这些额外的分级文件是什么?它们代表什么/做什么?自定义插件? 中的属性与中应定义的属性有什么区别?

  • 问题内容: 我尝试构建jar,然后将其复制到另一个文件夹。 但是我找不到一个问题。copyJarToBin任务尝试复制旧的jar。如果我删除项目中的/ build文件夹并运行buildApp()任务,则任务createJar()将生成.jar文件,但copyJarToBin()找不到该.jar文件。 你可以帮帮我吗? 谢谢。 问题答案: 罪魁祸首是您的任务。做的时候 您可以在配置期间使用该方法复制

  • 据我所知,Herokus Ephemeral文件系统只允许您写入临时文件夹。当停止或重新启动创建文件的测功机时,该文件夹中创建的文件将被丢弃。 我不明白的是,如果dyno没有停止或重新启动会发生什么?一段时间后,文件还会被丢弃吗? 我们目前正在构建一个系统,该系统可以生成pdf文件并通过邮件转发(或者您可以下载该文件)。在发送/下载pdf文件后,我是否需要自己删除它们,或者我可以依靠Heroku自