python tempfile自动删除_Python tempfile模块生成临时文件和临时目录

tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好。

tempfile 模块中常用的函数,如表 1 所示。

表 1 tempfile 模块常用函数及功能

tempfile 模块函数

功能描述

tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None)

创建临时文件。该函数返回一个类文件对象,也就是支持文件 I/O。

tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True)

创建临时文件。该函数的功能与上一个函数的功能大致相同,只是它生成的临时文件在文件系统中有文件名。

tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None)

创建临时文件。与 TemporaryFile 函数相比,当程序向该临时文件输出数据时,会先输出到内存中,直到超过 max_size 才会真正输出到物理磁盘中。

tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None)

生成临时目录。

tempfile.gettempdir()

获取系统的临时目录。

tempfile.gettempdirb()

与 gettempdir() 相同,只是该函数返回字节串。

tempfile.gettempprefix()

返回用于生成临时文件的前缀名。

tempfile.gettempprefixb()

与 gettempprefix() 相同,只是该函数返回字节串。

提示:表中有些函数包含很多参数,但这些参数都具有自己的默认值,因此如果没有特殊要求,可以不对其传参。

tempfile 模块还提供了 tempfile.mkstemp() 和 tempfile.mkdtemp() 两个低级别的函数。上面介绍的 4 个用于创建临时文件和临时目录的函数都是高级别的函数,高级别的函数支持自动清理,而且可以与 with 语句一起使用,而这两个低级别的函数则不支持,因此一般推荐使用高级别的函数来创建临时文件和临时目录。

此外,tempfile 模块还提供了 tempfile.tempdir 属性,通过对该属性赋值可以改变系统的临时目录。

下面程序示范了如何使用临时文件和临时目录:

import tempfile

# 创建临时文件

fp = tempfile.TemporaryFile()

print(fp.name)

fp.write('两情若是久长时,'.encode('utf-8'))

fp.write('又岂在朝朝暮暮。'.encode('utf-8'))

# 将文件指针移到开始处,准备读取文件

fp.seek(0)

print(fp.read().decode('utf-8')) # 输出刚才写入的内容

# 关闭文件,该文件将会被自动删除

fp.close()

# 通过with语句创建临时文件,with会自动关闭临时文件

with tempfile.TemporaryFile() as fp:

# 写入内容

fp.write(b'I Love Python!')

# 将文件指针移到开始处,准备读取文件

fp.seek(0)

# 读取文件内容

print(fp.read()) # b'I Love Python!'

# 通过with语句创建临时目录

with tempfile.TemporaryDirectory() as tmpdirname:

print('创建临时目录', tmpdirname)

上面程序以两种方式来创建临时文件:

第一种方式是手动创建临时文件,读写临时文件后需要主动关闭它,当程序关闭该临时文件时,该文件会被自动删除。

第二种方式则是使用 with 语句创建临时文件,这样 with 语句会自动关闭临时文件。

上面程序最后还创建了临时目录。由于程序使用 with 语句来管理临时目录,因此程序也会自动删除该临时目录。

运行上面程序,可以看到如下输出结果:

C:\Users\admin\AppData\Local\Temp\tmphvehw9z1

两情若是久长时,又岂在朝朝暮暮。

b'I Love Python!'

创建临时目录C:\Users\admin\AppData\Local\Temp\tmp3sjbnwob

上面第一行输出结果就是程序生成的临时文件的文件名,最后一行输出结果就是程序生成的临时目录的目录名。需要注意的是,不要去找临时文件或临时文件夹,因为程序退出时该临时文件和临时文件夹都会被删除。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python tempfile模块生成临时文件和临时目录

本文地址: http://www.cppcns.com/jiaoben/python/351544.html

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

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

相关文章

Pandas数据可视化工具:图表工具-Seaborn

内容来源:https://www.jiqizhixin.com/articles/2019-01-30-15 简介 在本文中,我们将研究Seaborn,它是Python中另一个非常有用的数据可视化库。Seaborn库构建在Matplotlib之上,并提供许多高级数据可视化功能。 尽管Seaborn库可以…

图解WinCE6.0下的内核驱动和用户驱动

图解WinCE6.0下的内核驱动和用户驱动 在《WinCE驱动程序的分类》中曾提到&#xff0c;WinCE6.0的流驱动既可以加载到内核态也可以加载到用户态。下面通过一组图片简单说明一下这两种驱动的关系。 首先编写一个流驱动WCEDrv&#xff0c;代码如下。 代码 #include <windows.h&…

【转】什么是CT使用的水模、体模

为了正确判断人体内部组织结构的密度&#xff0c;我们规定空气为一1000HU(CT值)&#xff0c;水为OHU&#xff0c;而致密骨质为1000HU&#xff0c;并把这些规定的参数事先输入CT的计算机。在行CT检查时&#xff0c;CT机就可以根据这个标准将人体内的组织密度转化为CT图象&#x…

人体轮廓_女性人体油画轮廓柔和生动,优美动人,你喜欢吗?

人体油画是艺术和时代的产物&#xff0c;也是艺术结晶的重要体现&#xff0c;在文艺复兴以前&#xff0c;人体艺术大都以雕塑形式来表现&#xff0c;在此之后&#xff0c;人们都以意大利威尼斯绘画为代表&#xff0c;艺术家们开始以色彩塑造人体绘画艺术。随着时代进步和人们对…

机器学习分类模型中的评价指标介绍:准确率、精确率、召回率、ROC曲线

文章来源&#xff1a;https://blog.csdn.net/wf592523813/article/details/95202448 1 二分类评价指标 准确率&#xff0c;精确率&#xff0c;召回率&#xff0c;F1-Score&#xff0c; AUC, ROC, P-R曲线 1.1 准确率&#xff08;Accuracy&#xff09; 评价分类问题的性能指标…

WINCE 加入驱动DLL步骤

1 主要文件1)驱动程序源代码文件&#xff0c;例如driver.c&#xff1b;2)驱动程序头文件&#xff0c;例如driver.h&#xff1b;3)动态库导出文件&#xff0c;例如driver.def&#xff1b;4)makefile 文件&#xff0c;文件名固定为makefile&#xff0c;该文件指出了驱动程序的编译…

【转】AI-900认证考试攻略

架构师的信仰系列文章&#xff0c;主要介绍我对系统架构的理解&#xff0c;从我的视角描述各种软件应用系统的架构设计思想和实现思路。 从程序员开始&#xff0c;到架构师一路走来&#xff0c;经历过太多的系统和应用。做过手机游戏&#xff0c;写过编程工具&#xff1b;做过…

300plc与组态王mpi通讯_S7-300与S7-200之间的MPI通信

通信说明S7-200PLC与S7-300PLC之间采用MPI通讯方式时&#xff0c;S7-200PLC中不需要编写任何与通讯有关的程序&#xff0c;只需要将要交换的数据整理到一个连续的V 存储区当中即可&#xff0c;而S7-300PLC中需要在组织块OB1(或是定时中断组织块OB35)当中调用系统功能X_GET(SFC6…

ORA-01114: 将块写入文件 35 时出现 IO 错误

参考文档&#xff1a; https://blog.csdn.net/z_x_1000/article/details/17263077 https://www.cnblogs.com/login2012/p/5775602.html https://www.iteye.com/blog/yangyangcom-2200174 一、问题背景 最开始发现应用服务打不开&#xff0c;于是登录服务器发现Oracle数据关…

【转】CT影像文件格式DICOM详解

CT影像文件格式DICOM详解 DICOM简介 DICOM&#xff08;Digital Imaging and Communications in Medicine&#xff09;即医学数字成像和通信&#xff0c;是医学图像和相关信息的国际标准&#xff08;ISO 12052&#xff09;。DICOM被广泛应用于放射医疗&#xff0c;心血管成像以…

Window CE 6.0流驱动开发动态加载实验

amily:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman">我是直接从51到ARM&#xff0c;受51的影响&#xff0c;在wince6.0下怎么编写应用程序控制开发板的LED&#xff0c;查了好多资料&#xff0c;并结合开发板…

fatal error lnk1120: 1 个无法解析的外部命令_3月1日七牛云存储割韭菜的应对方法...

前言早上起来看邮件&#xff0c;看到一封被七牛云割韭菜的公告&#xff1a;内心冰冰凉&#xff0c;不过大家都要吃饭的嘛总不能一直免费下去。所以来研究一下对于我们这种穷人应该如何应对。一、七牛CDN加速流程主要流程分析1、用户通过浏览器访问我的网站(腾讯云服务器)&#…

【转】DCM(DICOM)医学影像文件格式详解

1、 什么是DICOM&#xff1f; DICOM(DigitalImaging andCommunications inMedicine)是指医疗数字影像传输协定&#xff0c;是用于医学影像处理、储存、打印、传输的一组通用的标准协定。它包含了文件格式的定义以及网络通信协议。DICOM是以TCP/IP为基础的应用协定&#xff0c;并…

WINCE下I/O操作基础

对外设进行 I/O 操作实际上也就是读写外设的寄存器,而我们通常使用的X86或者ARM处理器在硬件上决定了wince系统启动后,无法直接访问物理地址,因此需要做一些工作来实现I/O操作. 首先要理解 windows CE 下的地址映射机制。 wince有两种地址&#xff1a;物理地址和虚拟地址&am…

SM4对称加密算法及Java实现

文章来源&#xff1a;https://www.jianshu.com/p/5ec8464b0a1b 一、简介 与DES和AES算法类似&#xff0c;SM4算法是一种分组密码算法。 其分组长度为128bit&#xff0c;密钥长度也为128bit。 加密算法与密钥扩展算法均采用32轮非线性迭代结构&#xff0c;以字&#xff08;32位…

【转】DICOM网络协议(一)概述

转自&#xff1a;https://www.jianshu.com/p/8a0f0fe6a738 作者&#xff1a;我住的城市没有福合埕 DICOM (Digital Imaging and Communications in Medicine)即医学数字成像和通信&#xff0c;DICOM网络是基于TCP/IP的网络协议。通过DICOM将影像设备和存储管理设备连接起来。…

Windows进程系列(2) -- Svchost进程

在基于NT内核的Windows操作系统家族中&#xff0c;Svchost.exe是一个非常重要的进程。很多病毒、木马驻留系统与这个进程密切相关&#xff0c;因此深入了解该进程是非常有必要的。本文主要介绍Svchost进程的功能&#xff0c;以及与该进程相关的知识。      Svchost进程概述…

mysql数据库字符集设置_查看和设置MySQL数据库字符集

查看和设置MySQL数据库字符集作者&#xff1a;scorpio 2008-01-21 10:05:17 标签&#xff1a; 杂谈 Liunx下修改MySQL字符集&#xff1a;1.查找MySQL的cnf文件的位置find / -iname *.cnf -print /usr/share/mysql/my-innodb-heavy-4G.cnf/usr/share/mysql/my-large.cnf/usr/sha…

MQTT和HTTP的区别

来源&#xff1a;http://blog.sina.com.cn/s/blog_68f485d10102yowx.html HTTP是最流行和最广泛使用的协议。但在过去几年中&#xff0c;MQTT迅速获得了牵引力。当我们谈论物联网开发时&#xff0c;开发人员必须在它们之间做出选择。 设计和消息传递 MQTT以数据为中心&#x…

【转】DICOM入门(一)——语法

转自&#xff1a;https://www.jianshu.com/p/5db8933a25a4 作者&#xff1a;我住的城市没有福合埕 1.什么是DICOM DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和传输协议&#xff0c;是用医疗影像&#xff08;CT 核磁共振 DR CR 超声等&#xff0…