如何用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的urllib库提交WEB表单
Feb 24 Python
详解Python的Django框架中的模版继承
Jul 16 Python
AI人工智能 Python实现人机对话
Nov 13 Python
python机器学习之决策树分类详解
Dec 20 Python
python实现比较文件内容异同
Jun 22 Python
python代码 输入数字使其反向输出的方法
Dec 22 Python
python虚拟环境迁移方法
Jan 03 Python
Django Rest framework频率原理与限制
Jul 26 Python
python的列表List求均值和中位数实例
Mar 03 Python
如何在sublime编辑器中安装python
May 20 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
May 26 Python
python 匿名函数与三元运算学习笔记
Oct 23 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
修改Zend引擎实现PHP源码加密的原理及实践
2008/04/14 PHP
php实现文件下载实例分享
2014/06/02 PHP
实例介绍PHP删除数组中的重复元素
2019/03/03 PHP
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
小程序ios音频播放没声音问题的解决
2018/07/11 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
python装饰器与递归算法详解
2016/02/18 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
Python中查看文件名和文件路径
2017/03/31 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
python3.6环境下安装freetype库和基本使用方法(推荐)
2020/05/10 Python
Python 实现一个计时器
2020/07/28 Python
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
暑假实习求职信范文
2013/09/22 职场文书
后勤副校长自我鉴定
2013/10/13 职场文书
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
优秀家长自荐材料
2014/08/26 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Redis集群的关闭与重启操作
2021/07/07 Redis
详细介绍python操作RabbitMq
2022/04/12 Python