【问题标题】:What are the differences between tempfile module and IO file-like objectstempfile 模块和 IO 类文件对象有什么区别
【发布时间】:2020-05-14 23:47:35
【问题描述】:

我发现两个模块在使用io.BytesIO()io.StringIo()tempfile.TemporaryFile() 创建临时文件方面有很多相似之处 每个人的目的是什么?

【问题讨论】:

    标签: python-3.x temporary-files stringio bytesio


    【解决方案1】:

    io.BytesIO() 创建一个类似文件的对象,链接到一个内存区域,并且应该用于存储二进制数据(就像用来表示图像的数据,一个音乐、MS Word 文档等)。

    io.StringIO() 创建一个类似文件的对象,链接到一个内存区域,并且应该用于存储文本数据(像一个html页面,一个php脚本,等)。

    tempfile.TemporaryFile()在磁盘上(不在内存中)创建一个临时文件。使用第一个参数mode 指定或不指定b 标志以确定文件应该存储二进制数据还是仅存储文本。

    【讨论】:

    • TemporaryFile here stackoverflow.com/questions/35278482/… 正如你在答案的最后两段中看到的那样,他说这取决于操作系统,所以我认为创建这个模块背后还有其他东西
    • 这是因为在 Unix 系统(macOS、Linux)上,您可以在 RAMdisk 中挂载 /tmp 目录。当在/tmp 中复制时,这种配置会将文件放入 RAM 而不是文件系统。这是在操作系统级别完成的,与 Python 工具无关。
    • 在阅读了一些文档之后,我发现它使用磁盘存储,我将进一步了解它的功能
    猜你喜欢
    • 2013-01-11
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 2017-02-25
    相关资源
    最近更新 更多