tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好。

tempfile 模块中常用的函数,如表 1 所示。

表 1 tempfile 模块常用函数及功能

tempfile 模块函数

功能描述

tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None)

创建临时文件。该函数返回一个类文件对象,也就是支持文件 I/O。

tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None, delete=True)

创建临时文件。该函数的功能与上一个函数的功能大致相同,只是它生成的临时文件在文件系统中有文件名。

tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=None, encoding=None, newline=None, suffix=None, prefix=None, dir=None)

创建临时文件。与 TemporaryFile 函数相比,当程序向该临时文件输出数据时,会先输出到内存中,直到超过 max_size 才会真正输出到物理磁盘中。

tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None)

生成临时目录。

tempfile.gettempdir()

获取系统的临时目录。

tempfile.gettempdirb()

与 gettempdir() 相同,只是该函数返回字节串。

tempfile.gettempprefix()

返回用于生成临时文件的前缀名。

tempfile.gettempprefixb()

与 gettempprefix() 相同,只是该函数返回字节串。

提示:表中有些函数包含很多参数,但这些参数都具有自己的默认值,因此如果没有特殊要求,可以不对其传参。

tempfile 模块还提供了 tempfile.mkstemp() 和 tempfile.mkdtemp() 两个低级别的函数。上面介绍的 4 个用于创建临时文件和临时目录的函数都是高级别的函数,高级别的函数支持自动清理,而且可以与 with 语句一起使用,而这两个低级别的函数则不支持,因此一般推荐使用高级别的函数来创建临时文件和临时目录。

此外,tempfile 模块还提供了 tempfile.tempdir 属性,通过对该属性赋值可以改变系统的临时目录。

下面程序示范了如何使用临时文件和临时目录:

import tempfile

# 创建临时文件

fp = tempfile.TemporaryFile()

print(fp.name)

fp.write('两情若是久长时,'.encode('utf-8'))

fp.write('又岂在朝朝暮暮。'.encode('utf-8'))

# 将文件指针移到开始处,准备读取文件

fp.seek(0)

print(fp.read().decode('utf-8')) # 输出刚才写入的内容

# 关闭文件,该文件将会被自动删除

fp.close()

# 通过with语句创建临时文件,with会自动关闭临时文件

with tempfile.TemporaryFile() as fp:

# 写入内容

fp.write(b'I Love Python!')

# 将文件指针移到开始处,准备读取文件

fp.seek(0)

# 读取文件内容

print(fp.read()) # b'I Love Python!'

# 通过with语句创建临时目录

with tempfile.TemporaryDirectory() as tmpdirname:

print('创建临时目录', tmpdirname)

上面程序以两种方式来创建临时文件:

第一种方式是手动创建临时文件,读写临时文件后需要主动关闭它,当程序关闭该临时文件时,该文件会被自动删除。

第二种方式则是使用 with 语句创建临时文件,这样 with 语句会自动关闭临时文件。

上面程序最后还创建了临时目录。由于程序使用 with 语句来管理临时目录,因此程序也会自动删除该临时目录。

运行上面程序,可以看到如下输出结果:

C:\Users\admin\AppData\Local\Temp\tmphvehw9z1

两情若是久长时,又岂在朝朝暮暮。

b'I Love Python!'

创建临时目录C:\Users\admin\AppData\Local\Temp\tmp3sjbnwob

上面第一行输出结果就是程序生成的临时文件的文件名,最后一行输出结果就是程序生成的临时目录的目录名。需要注意的是,不要去找临时文件或临时文件夹,因为程序退出时该临时文件和临时文件夹都会被删除。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python tempfile模块生成临时文件和临时目录

本文地址: http://www.cppcns.com/jiaoben/python/351544.html

python tempfile自动删除_Python tempfile模块生成临时文件和临时目录相关推荐

  1. python tempfile cleanup_Python tempfile模块:生成临时文件和临时目录

    Python tempfile模块:生成临时文件和临时目录 tempfile 模块专门用于创建临时文件和临时目录,它既可以在 UNIX 平台上运行良好,也可以在 Windows 平台上运行良好. te ...

  2. python主函数调用格式_Python的模块与函数

    一.概述Python的程序由包.模块和函数组成. 函数是一段可重用的有名称的代码.通过输入的参数值,返回需要的结果,并可存储在文件中供以后使用.几乎任何Python代码都可放在函数中.Python为函 ...

  3. Python编程基础 - 使用临时文件和临时目录

    Python编程基础 - 使用临时文件和临时目录 李俊才 CSDN博客:jcLee1995 291148484@163.com [导读]:本文先介绍了什么是临时文件,然后围绕Python内建模块Tem ...

  4. python tempfile cleanup_python tempfile 模块---生成临时文件和目录

    1 tempfile介绍 tempfile 模块中常用的函数,如下表所示. tempfile 模块函数功能描述tempfile.TemporaryFile(mode='w+b', buffering= ...

  5. python支付宝自动转账_python实现支付宝转账接口

    python实现支付宝转账接口 发布时间:2020-09-14 03:23:42 来源:脚本之家 阅读:128 由于工作需要使用python开发一个自动转账接口,记录一下开发过程. 首先需要在蚂蚁金服 ...

  6. python如何自动缩进_python自动缩进

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在使用vim并编辑python脚本. autoindent通常工作得很好,但 ...

  7. python如何自动缩进_python word 自动排版写码时应该缩进使用 tab 还是空格?

    对于程序员来说,其实Tab和空格远远不只是"立场"问题那么简单. 在不同的编辑器里tab的长度可能不一致,所以在一个编辑器里用tab设置缩进后,在其它编辑器里看可能缩进就乱了.空格 ...

  8. python 苹果系统 交互_Python常用模块os——与操作系统交互

    os.getcwd() 返回当前工作目录绝对路径 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit ...

  9. python 苹果系统 交互_Python常用模块os--与操作系统交互

    os.getcwd() 返回当前工作目录绝对路径 Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit ...

最新文章

  1. Spring Filter过滤器,Spring拦截未登录用户权限限制
  2. 在Visual Studio 2005里,用ActiveSync来同步模拟器(Windows Mobile 5.0 )
  3. C语言日志级别和作用,自己写的C语言通用日志框架,可以控制日志输出等级
  4. zen服务器芯片,服务器版Zen处理器简直大杀器:32核64线程,8通道DDR4内存
  5. 三种地理参考信息模型:WMS,WFS,WCS(转)
  6. python打印文档添加条码_12行代码教会你用python读excel文件,提取数据,生成条形码...
  7. 玩转docker、Swarm、Kubernetes
  8. ViewFlipper(翻转视图)使用详解
  9. Access新手到高手视频教程 109讲
  10. 目标检测学习笔记-3D摄像头与 2D摄像头区别
  11. Android 系统应用开发实战
  12. 利用报废主板制作SPD刷内存编程器座子
  13. Linux centos7 DNS服务器基于bind正反解析服务的搭建
  14. 耿明雨出席2021深圳国际珠宝展览会
  15. spring-上手spring
  16. ar1220e-s虚拟服务器,华为路由器AR1220E-S和华为AP3010 FIT模式与openportal对接教程
  17. jsp页面div浮动在img上面
  18. 如何进行直播搭建,带货直播系统源码怎么制作?
  19. HTML 第一学期-第八章上机练习+课后练习(简答题)
  20. 【19调剂】湖南大学信息科学与工程学院2019年硕士研究生调剂通知(校内)

热门文章

  1. 20154319 《网络对抗技术》后门原理与实践
  2. Shell脚本完成hadoop的集群安装
  3. bash中将字符串split成数组的方法
  4. 为自己尝试写点东西吧,程序员们!(转)
  5. 基于注解风格的Spring-MVC的拦截器
  6. 巧克力情歌手---McKnight, Brian
  7. 上拉加载更多后台数据_微信小程序端操作云数据库
  8. 算术类型转换、整型提升
  9. java+向前进一_Java 线程基础
  10. B. Mashmokh and ACM