会自动清除的文件——tempfile

原文链接:http://www.juzicode.com/python-tutorial-tempfile/

在某些不需要持久保存文件的场景下,可以用tempfile模块生成临时文件或者文件夹,这些临时文件或者文件夹在使用完之后就会自动删除。

NamedTemporaryFile用来创建临时文件,TemporaryDirectory用来创建临时文件夹,下面的例子演示了如何创建临时文件和文件夹的基本用法:

import tempfile
from tempfile import TemporaryDirectory as td
from tempfile import NamedTemporaryFile as ntf
import ospf = ntf()
tempfn = pf.name
print('filename:',tempfn)
print(tempfn,'exists status:',os.path.exists(tempfn))
pf.close()
print(tempfn,'exists status:',os.path.exists(tempfn)) #文件对象关闭后文件被删除了print()
tempdir = td()
dirname=tempdir.name
print('dirctory:',dirname)

运行结果:


filename: C:\Users\jerry\AppData\Local\Temp\tmpdxdl2xvj
C:\Users\jerry\AppData\Local\Temp\tmpdxdl2xvj exists status: True
C:\Users\jerry\AppData\Local\Temp\tmpdxdl2xvj exists status: Falsedirctory: C:\Users\jerry\AppData\Local\Temp\tmpyxnujlq1

从上面运行的结果可以看出,用pf.close()将文件对象关闭后,这个文件就不存在了,并不需要等待运行程序的结束。但是通过文件浏览器可以看到,程序退出后临时文件夹仍然存在的:

但是如果使用with语句创建临时文件夹,with语句结束后,该文件夹则会被自动删除:

with td() as tempdir2:print(tempdir2)print(tempdir2,'exists status:',os.path.exists(tempdir2))
print(tempdir2,'after with-as exists status:',os.path.exists(tempdir2))    

运行结果:


C:\Users\jerry\AppData\Local\Temp\tmpe3s9ofz7
C:\Users\jerry\AppData\Local\Temp\tmpe3s9ofz7 exists status: True
C:\Users\jerry\AppData\Local\Temp\tmpe3s9ofz7 after with-as exists status: False

前面的内容演示了如何使用tempfile生成临时文件,但是需要注意文件或者文件夹的“生命周期”,如果文件或者文件夹已经被删除再访问它们就会出现报错。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/32292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysqladmin——MySQL Server管理程序(二)

mysqladmin 是一个命令行工具,用于执行简单的 MySQL 服务器管理任务,如检查服务器的状态、创建和删除数据库、重载权限等。 1 reload 重新加载授权表(grant tables)。当修改了MySQL的权限系统(例如,修改了…

6月27日云技术研讨会 | 中央集中架构新车型功能和网络测试解决方案

会议摘要 “软件定义汽车”新时代下,整车电气电气架构向中央-区域集中式发展已成为行业共识,车型架构的变革带来更复杂的整车功能定义、更多的新技术的应用(如SOA服务化、TSN等)和更短的车型研发周期,对整车和新产品研…

C语言| 数组的折半查找

数组的折半查找 折半查找:在已经排好序的一组数据中快速查找数据。 先排序,再使用折半查找。 【折半查找的运行过程】 1 存储数组下标 low最小的下标,mid中间的下标, high最大的下标 2 key存放查找的值,每一次对比后…

Python 全栈系列255 UCS实践:按ID同步数据

说明 这是一个常见的使用场景,实测下来效果良好。 内容 1 实验场景 将库中所有的数据取出,送到队列 本质上,这是一种单向不返回的模式。除了在遍历全库有用,在进行回测时也是一样的,时间就是单向不返回的。 通过UC…

Acrobat Pro DC 2021:Mac/Win平台上全面高效的PDF编辑器

Acrobat Pro DC 2021是一款在Mac和Windows平台上广受欢迎的PDF编辑器,它凭借其全面的功能和高效的性能,为用户提供了卓越的PDF处理体验。 一、编辑功能全面强大 Acrobat Pro DC 2021允许用户轻松创建、编辑、合并、转换、签署和分享PDF文件。无论是对P…

学习笔记——交通安全分析07

目录 前言 当天学习笔记整理 2交通行为、心理与安全 3道路交通事故数据 4信控交叉口交通安全分析 结束语 前言 #随着上一轮SPSS学习完成之后,本人又开始了新教材《交通安全分析》的学习 #整理过程不易,喜欢UP就点个免费的关注趴 #本期内容接上一…

一个电商创业者眼中的618:平台大变局

战役结束了,战斗还在继续。 一位朋友去年5月创业,网上卖咖啡,这个赛道很拥挤,时机也不好,今年是他参加第一个618。朋友说,今年的目标是锤炼团队,总结方法,以及最重要的——活下去。…

水系统阻力计算

所谓水泵的选取计算其实就是估算(很多计算公式本身就是估算的),估算分的细致些考虑的内容全面些就是精确的计算。 特别补充:当设计流量在设备的额定流量附近时,上面所提到的阻力可以套用,更多的是往往都大…

Spring (72)如何在Spring中使用缓存

在Spring框架中,使用缓存是一种有效的方式来提高应用程序性能,减少数据库或者计算密集型操作的负担。Spring提供了一个声明式的缓存抽象,它允许开发者通过注解来简单地将缓存应用到应用程序中。下面我们将深入探讨Spring缓存的使用&#xff0…

【C++题解】1713 - 输出满足条件的整数3

问题:1713 - 输出满足条件的整数3 类型:简单循环 题目描述: 有一个数列,该数列的前 4 个数是: 1 4 7 10 ; 请从键盘读入一个正整数 n ,请通过观察前 4 项的规律,输出 1∼n 之间所有…

矩阵计算王牌软件 MATLAB,如何应对 AI 研发应用新挑战

提到 MATLAB,可能是所有控制工程与科学研究工作人员在学生时代就开始接触的软件。在 CSDN 社区 MATLAB 已经积累了 130 多万篇的文章与文档资料,影响了一代又一代的软件开发工程师。MATLAB 背后的 MathWorks 公司是一家已经成立四十年的老牌软件厂商&…

AudioSep:从音频中分离出特定声音(人声、笑声、噪音、乐器等)本地一键整合包下载

AudioSep是一种 AI 模型,可以使用自然语言查询进行声音分离。这一创新性的模型由Audio-AGI开发,使用户能够通过简单的语言描述来分离各种声音源。 比如在嘈杂的人流车流中说话的录音中,可以分别提取干净的人声说话声音和嘈杂的人流车流噪声。…

4种典型家庭教育方式,无论开始是哪一种,都会过渡到最后一种

家庭教育,是孩子教育的一个重要组成部分,事实上是对孩子影响最大的一种教育方式,绝大部分家庭教育都是由孩子的父母来完成的。 家庭教育的特点 家庭教育具有很明显的启蒙性、长期性、全面性。 1.启蒙性。我们的孩子对外部世界的认识和了解&am…

咖啡事故,上海Manner咖啡店,1天两起店员和顾客发生冲突

上海咖啡店Manner,一天的时间竟然发生两起店员和员工发生肢体冲突: 事情详情: Manner威海路716店事件: 店员泼顾客咖啡粉,随后被辞退品牌方回应媒体,表示将严肃处理Manner梅花路门店事件:顾客因等待时间长抱怨&…

解锁PDF处理新境界:轻松调整字体,让你的文档焕然一新!

数字化时代,PDF文件已经成为我们日常办公和学习中不可或缺的一部分。它们为我们提供了方便的阅读体验,同时也保证了文档内容的完整性和格式的统一性。然而,有时候我们可能会遇到一个问题:如何轻松调整PDF文件中的字体,…

Linux内核学习——linux内核体系结构(1)

1 Linux内核模式 学习的是Linux 0.11内核,采用的是单内核模式。单内核模式的主要优点是内核代码结构紧凑、执行速度快,但是层次结构性不强。 操作系统如何提供的服务流程? 应用主程序使用指定的参数值执行系统调用指令(int x80)&#xff0…

如何恢复 Mac 数据?适用于 Mac 的免费磁盘恢复软件

对于大多数 Mac 电脑用户来说,丢失数据是他们最不想遇到的噩梦之一。然而,无论我们多么小心地使用 Mac,多么有条理地存储重要文件,我们仍然有可能丢失 Mac 上的数据。某些硬件故障更有可能导致您意外丢失文件。除此之外&#xff0…

Linux htop命令使用

文章目录 简介界面介绍第一行第二行第三行第四行 如何使用 简介 htop 是一个类似于 top 的命令,但具有更丰富的功能和更友好的界面。它可以实时显示系统中各个进程的资源占用情况,如 CPU 使用率、内存使用率等。以下是对 htop 命令的完全解析&#xff1…

echarts Y轴展示时间片段,series data数据 也是时间片段,鼠标放上去 提示框显示对应的时间片段

功能要求 1、折线图,展示每天对应的一个时间片段 2、echarts Y轴展示时间片段,如:[00:00,03:00,05:15] 3、X轴展示日期,如:[xx年xx月xx日] 后端返回的数据结构,如 [{xAdate:"2024-06-15",data:…

【c++11 之智能指针2 unique、shared、weak *_ptr 原理及案例】及四种智能指针对比分析

C11引入了智能指针(Smart Pointers)的概念,它们是一种自动管理内存的生命周期的指针类型,帮助开发者避免内存泄漏和野指针等问题。C11标准库中定义了三种智能指针:std::unique_ptr、std::shared_ptr和std::weak_ptr。 …