python - 如何在django中生成临时文件然后销毁

标签 python django

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

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

是否有任何临时位置可以在用户 session 后自动删除文件

最佳答案

Python 有 tempfile module正是为了这个目的。您无需担心文件的位置/删除,它适用于所有支持的平台。

临时文件分为三种:

  • tempfile.TemporaryFile - 只是基本的临时文件,
  • tempfile.NamedTemporaryFile - "这个函数的操作和 TemporaryFile() 完全一样,除了文件保证在文件系统中有一个可见的名字(在 Unix 上,目录条目没有取消链接)。可以从文件对象的 name 属性中检索该名称。",
  • tempfile.SpooledTemporaryFile - "这个函数的操作和 TemporaryFile() 完全一样,除了数据在内存中假脱机直到文件大小超过 max_size,或者直到文件的 fileno() 方法被调用,此时内容被写入磁盘并且操作像 TemporaryFile() 一样继续。",

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

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

    
abcdefg

关于python - 如何在django中生成临时文件然后销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13619600/

相关文章:

python - 是否可以根据键列表在 Python 中获取字典的有序 "slice"?

django - 必需的 ChoiceField 中的空白选项

python - Django 从模型返回特定字段作为外键

python - Pandas – 根据单元格值选择列

python - 在python中访问超(父)类变量

python - 与 sort() 排序不一致

django - 无法使用工头和 gunicorn 运行 django 应用程序

python - 如何在 TensorFlow 中读取 csv?

python - 如何将验证错误显示为 django admin 默认错误

python - 将 python 升级到 2.7,将 Django 升级到 1.4,但它告诉我没有名为 * 的模块