如何使用临时文件

本文介绍了一种通过Python标准库tempfile来高效管理大量临时数据的方法。利用TemporaryFile和NamedTemporaryFile可以有效避免内存过载,并提供了关闭后自动删除临时文件的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实际案例

某项目中,我们从传感器采集数据,每收集到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关闭自动删除机制,这样我们在创建一个新的临时文件时,原来的临时文件依旧存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值