如何用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 相关文章推荐
python3判断url链接是否为404的方法
Aug 10 Python
python中退出多层循环的方法
Nov 27 Python
Python3最长回文子串算法示例
Mar 04 Python
Python+pyplot绘制带文本标注的柱状图方法
Jul 08 Python
python单例模式的多种实现方法
Jul 26 Python
Python中调用其他程序的方式详解
Aug 06 Python
Python实现括号匹配方法详解
Feb 10 Python
使用python绘制cdf的多种实现方法
Feb 25 Python
Python中的Cookie模块如何使用
Jun 04 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python中的min及返回最小值索引的操作
May 10 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
vue.js初学入门教程(1)
2016/11/03 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
vue+springboot前后端分离实现单点登录跨域问题解决方法
2018/01/30 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
python实现提取百度搜索结果的方法
2015/05/19 Python
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
PyQt5响应回车事件的方法
2019/06/25 Python
python实现翻转棋游戏(othello)
2019/07/29 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python交互模式基础知识点学习
2020/06/18 Python
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
塑料制成的可水洗的编织平底鞋和鞋子:Rothy’s
2018/09/16 全球购物
创联软件面试题笔试题
2012/10/07 面试题
学生喝酒检讨书
2014/02/06 职场文书
二手房购房协议书范本
2014/10/05 职场文书
医院中层管理人员培训心得体会
2016/01/11 职场文书
2016拓展训练心得体会范文
2016/01/12 职场文书