如何用tempfile库创建python进程中的临时文件


Posted in Python onJanuary 28, 2021

技术背景

临时文件在python项目中时常会被使用到,其作用在于随机化的创建不重名的文件,路径一般都是放在Linux系统下的/tmp目录。如果项目中并不需要持久化的存储一个文件,就可以采用临时文件的形式进行存储和读取,在使用之后可以自行决定是删除还是保留。

tempfile库的使用

tempfile一般是python内置的一个函数库,不需要单独安装,这里我们直接介绍一下其常规使用方法:

# tempfile_test.py

import tempfile

file = tempfile.NamedTemporaryFile()
name = str(file.name)
file.write('This is the first tmp file!'.encode('utf-8'))
file.close()

print (name)

上述代码执行的任务为:使用tempfile.NamedTemporaryFile创建一个临时文件,其文件名采用的是随机化的字符串格式,作为name这样的一个属性来调用。通过执行这个任务,我们可以查看一般是生成什么样格式的临时文件:

[dechin@dechin-manjaro tmp_file]$ python3 tempfile_test.py 
/tmp/tmppetcksa8
[dechin@dechin-manjaro tmp_file]$ ll
总用量 4
-rw-r--r-- 1 dechin dechin 181 1月 27 21:39 tempfile_test.py
[dechin@dechin-manjaro tmp_file]$ cat /tmp/tmppetcksa8
cat: /tmp/tmppetcksa8: 没有那个文件或目录

在这个python代码的执行过程中,产生了tmppetcksa8这样的一个文件,我们可以向这个文件中直接write一些字符串。这个临时文件被存储在tmp目录下,与当前的执行路径无关。同时执行结束之后我们发现,产生的这个临时文件被删除了,这是NamedTemporaryFile自带的一个delete的属性,默认配置是关闭临时文件后直接删除。

持久化保存临时文件

需要持久化保存临时文件是非常容易的,只需要将上述章节中的delete属性设置为False即可:

# tempfile_test.py

import tempfile

file = tempfile.NamedTemporaryFile(delete=False)
name = str(file.name)
file.write('This is the first tmp file!'.encode('utf-8'))
file.close()

print (name)

这里我们唯一的变动,只是在括号中加上了delete=True这一设定,这个设定可以允许我们持久化的存储临时文件:

[dechin@dechin-manjaro tmp_file]$ python3 tempfile_test.py 
/tmp/tmpwlt27ryk
[dechin@dechin-manjaro tmp_file]$ cat /tmp/tmpwlt27ryk
This is the first tmp file!

设置临时文件后缀

在有些场景下对于临时文件的存储有一定的格式要求,比如后缀等,这里我们将临时文件的后缀设置为常用的txt格式,同样的,只需要在NamedTemporaryFile的参数中进行配置即可:

# tempfile_test.py

import tempfile

file = tempfile.NamedTemporaryFile(delete=False, suffix='.txt')
name = str(file.name)
file.write('This is the first tmp file!'.encode('utf-8'))
file.close()

print (name)

由于还是设置了delete=True参数,因此该临时txt文件被持久化的保存在系统中的/tmp目录下:

[dechin@dechin-manjaro tmp_file]$ python3 tempfile_test.py 
/tmp/tmpk0ct_kzs.txt
[dechin@dechin-manjaro tmp_file]$ cat /tmp/tmpk0ct_kzs.txt
This is the first tmp file!

总结概要

本文主要介绍了python中自带的tempfile库对临时文件的操作,通过tempfile库我们可以创建自动删除的或者持久化存储的临时文件,存储路径为Linux系统下的/tmp目录,而我们还可以根据不同的场景需要对产生的临时文件的后缀进行配置。

原文链接为:https://www.cnblogs.com/dechinphy/p/tempfile.html

以上就是如何用tempfile库创建python进程中的临时文件的详细内容,更多关于tempfile库创建临时文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
wxpython 最小化到托盘与欢迎图片的实现方法
Jun 09 Python
用Python操作字符串之rindex()方法的使用
May 19 Python
django admin添加数据自动记录user到表中的实现方法
Jan 05 Python
python实现内存监控系统
Mar 07 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Python接口开发实现步骤详解
Apr 26 Python
Python新手学习标准库模块命名
May 29 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 Python
Django配置跨域并开发测试接口
Nov 04 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 Python
python基于Kivy写一个图形桌面时钟程序
Jan 28 #Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
Jan 28 #Python
详解Python调用系统命令的六种方法
Jan 28 #Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 #Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 28 #Python
Python中Pyspider爬虫框架的基本使用详解
Jan 27 #Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
Jan 27 #Python
You might like
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
PHP中ajax无刷新上传图片与图片下载功能
2017/02/21 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
心扬JS分页函数代码
2010/09/10 Javascript
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
2014/02/28 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
Python urlopen()和urlretrieve()用法解析
2020/01/07 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
纯CSS3实现8组超炫酷鼠标滑过图片动画
2016/03/16 HTML / CSS
天巡全球:Skyscanner Global
2017/06/20 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
乔迁宴答谢词
2014/01/21 职场文书
村居抓节水倡议书
2014/05/19 职场文书
协会周年庆活动方案
2014/08/26 职场文书
2014小学教师年度考核工作总结
2014/12/03 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
2015年领导干部廉洁自律工作总结
2015/05/26 职场文书
感谢师恩主题班会
2015/08/17 职场文书
教师理论学习心得体会
2016/01/21 职场文书
box-shadow单边阴影的实现
2023/05/21 HTML / CSS