如何用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中使用select模块实现非阻塞的IO
Feb 03 Python
python通过yield实现数组全排列的方法
Mar 18 Python
python将字符串转换成数组的方法
Apr 29 Python
使用pandas的DataFrame的plot方法绘制图像的实例
May 24 Python
Python实现的redis分布式锁功能示例
May 29 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
Jun 19 Python
numpy中loadtxt 的用法详解
Aug 03 Python
python实现图片筛选程序
Oct 24 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
python实现证件照换底功能
Aug 20 Python
Python利用myqr库创建自己的二维码
Nov 24 Python
python 生成正态分布数据,并绘图和解析
Dec 21 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
解密ThinkPHP3.1.2版本之独立分组功能应用
2014/06/19 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
javascript比较文档位置
2008/04/08 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
vue引入新版 vue-awesome-swiper插件填坑问题
2018/01/25 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
详解JavaScript修改注册表的方法
2020/01/05 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
TensorFlow 实战之实现卷积神经网络的实例讲解
2018/02/26 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
2018/07/09 Python
python实现邮件发送功能
2019/08/10 Python
Django视图、传参和forms验证操作
2020/07/15 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
Python爬取某平台短视频的方法
2021/02/08 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
HTML5制作表格样式
2016/11/15 HTML / CSS
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
财务方面个人工作的自我评价
2013/12/28 职场文书
会计专业自我鉴定范文
2013/12/29 职场文书
环境工程专业自荐信
2014/03/03 职场文书
学校教师安全责任书
2014/07/23 职场文书
计划生育证明书写要求
2014/09/17 职场文书