1、如何使用临时文件
实际案例:
某项目中,我们从传感器采集数据,每收集到1G数据后,做数据分析,最终只保存分析结果。这样很大的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件存储这些临时数据(外部存储)。
临时文件不同命名,且关闭后会自动被删除。
解决方案:
使用标准库中tmpfile下的TemporaryFile,NamedTemporaryFile。
2、代码演示
from tempfile import TemporaryFile, NamedTemporaryFile
'''
TemporaryFile和NamedTemporaryFile区别:
(1) NamedTemporaryFile会创建带名字的临时文件;
TemporaryFile创建的临时文件不带名字
(2)TemporaryFile创建的临时文件,不能由文件系统路径找到它,只能由对象访问;
创建一个能在文件系统中找到的临时文件,使用NamedTemporaryFile。
(3)临时文件在关闭以后,它会自动删除掉。
NamedTemporaryFile可以指参数delete=False,
在文件关闭以后不删除临时文件。在这种情况下可以
多个进程同时访问,由文件系统的路径访问文件;
而TemporaryFile只能在本进程下访问。
'''
# (1)TemporaryFile创建临时文件
# 返回一个临时文件对象
f = TemporaryFile()
f.write(b'abcdef' * 100000)
# 将文件指针指回到文件首部
f.seek(0)
# 只读取文件一部分数据
print(f.read(100))
# (2) NamedTemporaryFile创建临时文件
# 返回的并不直接是一个文件对象
ntf = NamedTemporaryFile()
# 可以通过name属性,得到在文件系统下的路径
print(ntf.name)
# 在文件关闭以后不删除临时文件
# ntf = NamedTemporaryFile(delete=False)