问题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:\Users\ADMINI~1\AppData\Local\Temp\tmpgpaunlqa
posted @ 2019-08-30 13:19  不夜男人  阅读(423)  评论(0编辑  收藏  举报