Python tempfile模块生成临时文件和临时目录


Posted in Python onSeptember 30, 2020

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 相关文章推荐
Python饼状图的绘制实例
Jan 15 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
python:按行读入,排序然后输出的方法
Jul 20 Python
python开头的coding设置方法
Aug 08 Python
python中对_init_的理解及实例解析
Oct 11 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
tensorflow查看ckpt各节点名称实例
Jan 21 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
基于python获取本地时间并转换时间戳和日期格式
Oct 27 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
python实现简单的名片管理系统
Apr 26 Python
Python实现定时监测网站运行状态的示例代码
Sep 30 #Python
python如何实现word批量转HTML
Sep 30 #Python
Python识别验证码的实现示例
Sep 30 #Python
Python列表嵌套常见坑点及解决方案
Sep 30 #Python
python实现感知机模型的示例
Sep 30 #Python
python 实现关联规则算法Apriori的示例
Sep 30 #Python
Python之字典添加元素的几种方法
Sep 30 #Python
You might like
async和DOM Script文件加载比较
2014/07/20 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
ecshop适应在PHP7的修改方法解决报错的实现
2016/11/01 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
javascript 浏览器检测代码精简版
2010/03/04 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
JQuery球队选择实例
2015/05/18 Javascript
javascript实现tab切换的两个实例
2015/11/05 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
AngularJS 面试题集锦
2016/09/06 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
python标准日志模块logging的使用方法
2013/11/01 Python
Python contextlib模块使用示例
2015/02/18 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
简历自荐信
2013/12/02 职场文书
税务会计岗位职责
2014/02/18 职场文书
保护环境倡议书范文
2014/05/13 职场文书
核心价值观演讲稿
2014/05/13 职场文书
体育专业大学生职业生涯规划范文:打造自己的运动帝国
2014/09/12 职场文书
教师党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
打架检讨书范文
2015/01/27 职场文书
秋菊打官司观后感
2015/06/03 职场文书
幼儿园见习总结
2015/06/23 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
golang生成并解析JSON
2022/04/14 Golang