如何用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 的 Socket 编程
Mar 24 Python
简单实现python画圆功能
Jan 25 Python
windows10下python3.5 pip3安装图文教程
Apr 02 Python
Flask框架各种常见装饰器示例
Jul 17 Python
wxPython的安装与使用教程
Aug 31 Python
关于Python Tkinter Button控件command传参问题的解决方式
Mar 04 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
python实现发送带附件的邮件代码分享
Sep 22 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
Nov 18 Python
python中把元组转换为namedtuple方法
Dec 09 Python
python利用proxybroker构建爬虫免费IP代理池的实现
Feb 21 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 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一些服务器端特性的配置加强php的安全
2006/10/09 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
javascript 自动填写表单的实现方法
2010/04/09 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
IE的事件传递-event.cancelBubble示例介绍
2014/01/12 Javascript
javascript中eval解析JSON字符串
2016/02/27 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
jQuery选择器之基本选择器用法实例分析
2019/02/19 jQuery
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python中map()函数的使用方法示例
2017/09/29 Python
python实现远程通过网络邮件控制计算机重启或关机
2018/02/22 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
利用python实现短信和电话提醒功能的例子
2019/08/08 Python
python绘制雪景图
2019/12/16 Python
Python+OpenCV实现图像的全景拼接
2020/03/05 Python
Python lambda表达式原理及用法解析
2020/08/18 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
印尼最大的婴儿用品购物网站:Orami
2017/09/28 全球购物
日本化妆品植村秀俄罗斯官方网站:Shu Uemura俄罗斯
2020/02/01 全球购物
法学专业本科生自荐信范文
2013/12/17 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
小学教师工作总结2015
2015/04/07 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL