如何使用临时文件

作者: SmallRookie | 来源:发表于2017-09-05 16:23 被阅读17次
    实际案例

    某项目中,我们从传感器采集数据,每收集到1G数据后,做数据分析,最终只保存分析结果。这样很大的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件存储这些临时数据(外部存储)。

    临时文件不用命名,且关闭后会自动删除。

    解决方案:使用标准库中tempfile下的TemporaryFile,NamedTemporaryFile。

    代码如下:

    # -*- coding: utf-8 -*-
    
    from tempfile import TemporaryFile, NamedTemporaryFile
    
    # TemporaryFile创建的临时文件,只能由f访问
    f = TemporaryFile()
    
    f.write('abcdef' * 100000)
    
    f.seek(0)
    
    # 每次读取一部分,否则内存消耗过大
    print f.read(100)
    
    
    # NamedTemporaryFile创建的临时文件可在文件系统中找到
    ntf = NamedTemporaryFile()
    
    # 临时文件所在文件路径
    print ntf.name
    

    运行结果为:

    abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcd
    c:\users\admin\appdata\local\temp\tmpcnn26b
    

    在NamedTemporaryFile中,我们可以设置参数delete=False关闭自动删除机制,这样我们在创建一个新的临时文件时,原来的临时文件依旧存在。

    相关文章

      网友评论

        本文标题:如何使用临时文件

        本文链接:https://www.haomeiwen.com/subject/mvdxrxtx.html