• 问题25:如何使用临时文件


    问题25:如何使用临时文件

     

    临时文件功能:存储临时数据到磁盘上;

    临时文件特点:不用命名,关闭后悔自动被删除;

    案例:

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

    Python中使用临时文件:

    1)方法:使用标准库tempfile模块下的TemporaryFile、NamedTemporaryFile对象,创建临时文件;

    2)TemporaryFile和NamedTemporaryFile的区别:NamedTemporaryFile会创建一个带名字的临时文件,TemporaryFile创建的临时文件不带名字;

    3)TemporaryFile创建的临时文件,不能通过系统的文件路径找到;只能通过文件对象来访问它;

    4)

    二、创建临时文件

     1)用TemporaryFile创建临时文件

      格式:TemporaryFile(mode = 'w+b', bufsize = '', suffix = '', prefix = 'tmp', dir = None, delete = True)

       #mode:默认‘wb’权限;

       #delete = True:默认为True,也就是说关闭文件时将其删除;可以定义delete = False,这样临时文件关闭时不会被删除;

       #创建临时文件,并返回一个文件对象,此临时文件只能通过返回的文件对象f进行访问,不能通过系统文件路径访问;因此它只能通过当前进程进行访问;

    复制代码
    from temfile imort TemporaryFile, NamedTemporaryFile
    
    #创建临时文件,并返回一个文件对象,此临时文件只能通过返回的文件对象f进行访问,不能通过系统文件路径访问;
    f = TemporaryFile()
    
    #将临时数据写入临时文件
    f.write('abcdefg' * 10000)
    
    #访问临时数据
    #将文件指针移到开始
    f.seek(0)
    
    #读取临时文件的前n字节
    f.read(n)
    复制代码

     2)用NamedTemporaryFile创建临时文件

      格式: NamedTemporaryFile(mode='wb', bufsize=-1, suffix='', prefix='tmp', dir=None, delete=True)

       #mode:默认‘wb’权限;

       #delete = True:默认为True,也就是说关闭文件时将其删除;可以定义delete = False,这样临时文件关闭时不会被删除;

       #创建临时文件时,不直接是文件对象;

       #有NamedTemporaryFile创建的临时文件有名字和文件路径,因此它可以被多个进程同时访问;

    复制代码
    from tempfile import TemporaryFile, NamedTemporaryFile
    
    ntf = NamedTemporaryFile()
    #NamedTemporaryFile(mode='wb', bufsize=-1, suffix='', prefix='tmp', dir=None, delete=True)
    #ntf的属性:ntf.close、ntf.delete、ntf.name、ntf.close_called、ntf.file、ntf.unlink
    
    #ntf的name属性,也就是临时文件在文件系统下的文件路径,其中文件名字为:tmpgpaunlqa
    #可以通过访问ntf的name属性,来访问该临时文件
    print(ntf.name)
    #输出:C:UsersADMINI~1AppDataLocalTemp	mpgpaunlqa
  • 相关阅读:
    函数
    特殊集合
    集合
    数组复习
    数组
    IPython--转
    python 单例模式总结
    拼多多笔试题
    python 创建实例--待完善
    转--算法时间复杂度
  • 原文地址:https://www.cnblogs.com/valorchang/p/11434477.html
Copyright © 2020-2023  润新知