如何用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中使用OpenCV进行人脸检测的例子
Apr 18 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
Python爬豆瓣电影实例
Feb 23 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
Jun 21 Python
python list转矩阵的实例讲解
Aug 04 Python
Python中asyncio与aiohttp入门教程
Oct 16 Python
Python多进程fork()函数详解
Feb 22 Python
浅析PEP572: 海象运算符
Oct 15 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 Python
在tensorflow实现直接读取网络的参数(weight and bias)的值
Jun 24 Python
python实现人性化显示金额数字实例详解
Sep 25 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数组函数序列之array_unique() - 去除数组中重复的元素值
2011/10/29 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
php数组键值用法实例分析
2015/02/27 PHP
jquery创建div 实现代码
2009/04/27 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
Jquery日历插件制作简单日历
2015/10/28 Javascript
jquery实现数字输入框
2017/02/22 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
JS实现点击按钮随机生成可拖动的不同颜色块示例
2019/01/30 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
在Django的模型中添加自定义方法的示例
2015/07/21 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
使用Python的Django和layim实现即时通讯的方法
2018/05/25 Python
django 多数据库配置教程
2018/05/30 Python
用Python实现读写锁的示例代码
2018/11/05 Python
Python Django框架单元测试之文件上传测试示例
2019/05/17 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
python实现门限回归方式
2020/02/29 Python
如何学习Python time模块
2020/06/03 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
汇科协同Java笔试题
2012/03/31 面试题
大学生四个方面的自我评价
2013/09/19 职场文书
新闻网站实习自我鉴定
2013/09/25 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
简单租房协议书范本
2014/08/20 职场文书
企业爱岗敬业演讲稿
2014/09/04 职场文书
今日说法观后感
2015/06/08 职场文书
react中props 的使用及进行限制的方法
2021/04/28 Javascript
使用 CSS 轻松实现一些高频出现的奇形怪状按钮
2021/12/06 HTML / CSS
nginx 配置缓存
2022/05/11 Servers