如何用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实现
Aug 24 Python
Python中的FTP通信模块ftplib的用法整理
Jul 08 Python
Python编程实现正则删除命令功能
Aug 30 Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 Python
python 文件查找及内容匹配方法
Oct 25 Python
Python基于百度云文字识别API
Dec 13 Python
Python3数字求和的实例
Feb 19 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
Python Matplotlib简易教程(小白教程)
Jul 28 Python
解决pytorch读取自制数据集出现过的问题
May 31 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来处理多个提交任务
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
yii,CI,yaf框架+smarty模板使用方法
2015/12/29 PHP
NodeJs中的非阻塞方法介绍
2012/06/05 NodeJs
js获取input标签的输入值实现代码
2013/08/05 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
vue使用axios跨域请求数据问题详解
2017/10/18 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
js实现鼠标滑动到某个div禁止滚动
2020/09/17 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
python 连续不等式语法糖实例
2020/04/15 Python
基于python 凸包问题的解决
2020/04/16 Python
保荐人的岗位职责
2013/11/19 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
西安大雁塔导游词
2015/02/10 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
调任通知
2015/04/21 职场文书
获奖感言一句话
2015/07/31 职场文书
高中美术教学反思
2016/02/17 职场文书
2019年教师节活动策划方案
2019/09/09 职场文书
Python代码风格与编程习惯重要吗?
2021/06/03 Python
Python实现滑雪小游戏
2021/09/25 Python
德生BCL3000抢先使用感受和评价
2022/04/07 无线电