如何用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 相关文章推荐
python中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
Nov 09 Python
Python实现螺旋矩阵的填充算法示例
Dec 28 Python
Django中Forms的使用代码解析
Feb 10 Python
基于anaconda下强大的conda命令介绍
Jun 11 Python
详解python解压压缩包的五种方法
Jul 05 Python
在pytorch中查看可训练参数的例子
Aug 18 Python
Django视图扩展类知识点详解
Oct 25 Python
opencv 查找连通区域 最大面积实例
Jun 04 Python
Python函数递归调用实现原理实例解析
Aug 11 Python
Python实现播放和录制声音的功能
Aug 12 Python
python flask框架快速入门
May 14 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
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
PHP7 弃用功能
2021/03/09 PHP
asp 的 分词实现代码
2007/05/24 Javascript
javascript css float属性的特殊写法
2008/11/13 Javascript
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
event对象获取方法总结在google浏览器下测试
2013/11/03 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
Vue.js实现拖放效果的实例
2016/09/30 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
解读Django框架中的低层次缓存API
2015/07/24 Python
python 爬取微信文章
2016/01/30 Python
浅谈Python数据类型之间的转换
2016/06/08 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python中使用psutil查看内存占用的情况
2018/06/11 Python
python3 拼接字符串的7种方法
2018/09/12 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
Python如何读取、写入CSV数据
2020/07/28 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
CSS3中background-clip和background-origin的区别示例介绍
2014/03/10 HTML / CSS
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
Hotels.com爱尔兰:全球酒店预订
2017/02/24 全球购物
幼儿园三八妇女节活动总结
2015/02/06 职场文书
创先争优个人总结
2015/03/04 职场文书
《童年的发现》教学反思
2016/02/18 职场文书
演讲开头怎么书写?
2019/08/06 职场文书