Python如何使用标准库tmpfile库创建临时文件
作者:AllardZhao
这篇文章主要介绍了Python如何使用标准库tmpfile库创建临时文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
如何使用临时文件
实际案例
某项目中,我们从传感器采集数据,每收集到1G数据后,做数据分析,最终只保存分析结果。
这样很大的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件存储这些临时数据(外部存储)。
临时文件不同命名,且关闭后会自动被删除。
解决方案
使用标准库中tmpfile下的TemporaryFile,NamedTemporaryFile。
代码演示
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)总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
