python3从入门到精通(十三): tempfile模块
📅 2026/7/21 9:36:32
👁️ 次浏览
tempfile模块详解一、基本概念二、常用函数函数常用参数:2.1、TemporaryFile()函数2.2、NamedTemporaryFile()函数2.3、TemporaryDirectory()函数2.4、SpooledTemporaryFile()函数三、低级API3.1、mkstemp()函数3.2、mkdtemp()函数四、全局配置五、案例5.1、生成临时文件供其他程序使用一、基本概念tempfile 是Python内置的临时文件/目录处理模块用来创建用完即删、自动清理、不会冲突的临时文件和文件夹。核心优势1、自动生成唯一文件名不会覆盖已有文件2、支持自动删除关闭即删3、无需手动管理文件删除二、常用函数函数 / 类用途是否自动删除TemporaryFile()临时文件无名字关闭自动删除NamedTemporaryFile()带名字的临时文件关闭自动删除SpooledTemporaryFile()内存临时文件高效关闭自动删除TemporaryDirectory()临时文件夹退出自动删除mkstemp()低级创建临时文件不自动删mkdtemp()低级创建临时目录不自动删函数常用参数:mode‘wb’指定文件的打开模式默认是 ‘wb’deleteTrue关闭后自动删除默认prefix‘tmp_’指定临时文件或目录名的前缀suffix‘.txt’指定临时文件或目录名的后缀dir‘./’指定临时文件或目录的存储路径。如果不指定则使用系统的临时文件目录通过 tempfile.gettempdir() 获取2.1、TemporaryFile()函数创建无名字临时文件关闭自动删除无法被其他进程访问1、完全匿名其他程序无法访问2、只支持二进制模式默认3、文件对象被关闭文件就会立即被销毁importtempfile# 默认模式为 wb创建临时文件二进制模式withtempfile.TemporaryFile()asf:f.write(bHello Temp File!)# 写入数据f.seek(0)# 回到文件开头print(f.read())# 退出with后文件自动被删除2.2、NamedTemporaryFile()函数创建带名字的临时文件可通过 name 属性获取路径关闭自动删除withtempfile.NamedTemporaryFile(modewt,encodingutf-8)asf:print(临时文件路径: ,f.name)# 可以拿到文件名f.write(临时文件内容)f.seek(0)print(f.read())# 退出with后文件自动被删除# 创建带后缀和前缀并且指定路径最后不删除的临时文件withtempfile.NamedTemporaryFile(suffix.log,prefixapp_,deleteFalse,dir./)asf:print(f.name)# 类似 /tmp/app_xxx.log# 手动删除文件os.remove(f.name)print(临时文件已手动删除)2.3、TemporaryDirectory()函数创建临时文件夹退出时整个目录会递归的自动删除importtempfileimportoswithtempfile.TemporaryDirectory()astmpdir:print(f临时目录已创建:{temp_dir})# 在临时目录里创建文件file_pathos.path.join(tmpdir,test.txt)withopen(file_path,w)asf:f.write(hello)# 退出with后整个目录及创建的文件均被自动删除2.4、SpooledTemporaryFile()函数内存级临时文件数据首先会保存在内存中直到达到指定阈值 (max_size)才会被真正写入磁盘上的临时文件性能高。# max_size1024 表示数据超出 1KB 后才会写入磁盘withtempfile.SpooledTemporaryFile(max_size1024,modewt)asspooled:spooled.write(A*100)# 写入 100 字节仍在内存中print(spooled._rolled)# 输出 False表示数据仍在内存spooled.write(B*1024)# 写入 1024 字节此时总大小 1124 1024print(spooled._rolled)# 输出 True表示数据已转储到磁盘三、低级API3.1、mkstemp()函数创建临时文件不会自动删除返回文件描述符 路径fd,pathtempfile.mkstemp(suffix.log,prefixapp_,dir./)print(临时文件路径: ,path)# 手动关闭、手动删除os.close(fd)os.unlink(path)3.2、mkdtemp()函数创建临时目录不会自动删除tmp_dirtempfile.mkdtemp()print(tmp_dir)# 用完手动删importshutil shutil.rmtree(tmp_dir)四、全局配置# 设置全局临时文件目录tempfile.tempdir./my_temp# 设置全局前缀tempfile.templatemyapp_temp_%s# 之后创建的所有临时文件都会用这个配置withtempfile.NamedTemporaryFile()asf:print(f.name)# 获取系统默认临时文件夹路径print(tempfile.gettempdir())# 获取临时文件名模板print(tempfile.gettempprefix())五、案例5.1、生成临时文件供其他程序使用importtempfileimportsubprocessimportos# 创建一个带名字的临时脚本文件withtempfile.NamedTemporaryFile(modew,suffix.sh,deleteFalse)asf:f.write(#!/bin/bash\necho hello from temp script)f.flush()# 让其他程序使用这个临时文件resultsubprocess.run([bash,f.name],capture_outputTrue,textTrue)print(result.stdout)# 手动删除因为 deleteFalseos.unlink(f.name)print(临时文件已清理)
1. 项目概述:从理论到实践的跨越如果你正在学习操作系统,或者对计算机底层运行机制感到好奇,那么“进程调度”这个概念你一定不陌生。教科书上那些先来先服务、短作业优先、时间片轮转的算法描述,是不是总感觉隔着一层纱ÿ…
📅 2026/7/21 9:36:32
一、实验环境与规划
1.企业网络拓扑
内网区域:VMnet1(仅主机)
外网区域:VMnet8(NAT)
防火墙/代理服务器:双网卡,做SNAT/DNAT/Squid 代理
2. 主机信息表4. 实验目标
1.安装配置 S…
📅 2026/7/21 9:36:32
如何快速安装TrollStore:TrollInstallerX终极指南与完整教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX
想要在iOS设备上自由安装未签名应用?…
📅 2026/7/21 9:36:32
如何安全关闭gh_mirrors/pi/pi-cluster:Ansible自动化与物理断电最佳流程 【免费下载链接】pi-cluster Raspberry Pi Cluster automation 项目地址: https://gitcode.com/gh_mirrors/pi/pi-cluster
gh_mirrors/pi/pi-cluster是一个基于Raspberry Pi的集群自动…
📅 2026/7/21 18:16:12
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
📅 2026/7/21 18:16:12
5分钟快速打造超轻量Windows 11系统:Tiny11Builder终极指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
想要体验一个干净、流畅、占用空间极小的W…
📅 2026/7/21 18:16:12
MyNode:开启你的比特币与闪电网络之旅,3步轻松搭建个人节点 【免费下载链接】mynode The easiest way to run Bitcoin and Lightning! 项目地址: https://gitcode.com/gh_mirrors/my/mynode
MyNode是一款让你轻松运行比特币和闪电网络的个人节点解…
📅 2026/7/21 18:16:12
文件上传性能大考验:py-frameworks-bench中12个Python框架的对比结果 【免费下载链接】py-frameworks-bench Another benchmark for some python frameworks 项目地址: https://gitcode.com/gh_mirrors/py/py-frameworks-bench
在Web开发中,文件上…
📅 2026/7/21 18:16:12
这篇内容直接告诉你,为什么你在 geo khani live 上看到的所谓“完美数据”全是扯淡,以及怎么在混乱的直播流里找到真正有用的信息。我不需要绕弯子,因为那些花里胡哨的包装只会让你亏钱。说实话,我对 geo khani live 这种直播形式一直持保留态度。每次打开直播间,满屏的特…
📅 2026/7/21 18:15:12
本文关键词:geo geo测试你是不是也遇到过这种奇葩事?明明你的网站内容写得比同行好,图片更清晰,甚至价格还更低,但在搜索结果里就是排不进去。特别是做本地生意的老板,那种看着隔壁老王明明啥也不是,却天天坐在收银台数钱的滋味,真的憋屈。我最近为了搞懂这个所谓的“地…
📅 2026/7/21 0:00:39
1. Octane Render与C4D的黄金组合:为什么选择这个方案?在三维创作领域,渲染器的选择往往决定了作品的最终呈现质量和工作效率。作为Cinema 4D(C4D)用户,Octane Render的GPU加速特性与实时预览功能ÿ…
📅 2026/7/21 0:00:41
1. GPMC接口设计:从硬件连接到软件配置的全局视角在嵌入式系统开发中,尤其是基于TI Sitara系列如AM263x这类高性能微控制器的项目里,外部存储器的扩展几乎是绕不开的一环。无论是存放大量非易失性代码的NOR Flash,还是作为高速数据…
📅 2026/7/21 0:00:41
1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…
📅 2026/7/21 1:04:03
1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…
📅 2026/7/21 1:04:03
更多请点击:
https://intelliparadigm.com
第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…
📅 2026/7/21 1:04:03
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/21 7:04:23
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/21 17:04:52
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/21 5:04:16