返回顶部
首页 > 资讯 > 后端开发 > Python >Python的tempfile模块怎么用
  • 468
分享到

Python的tempfile模块怎么用

2023-06-29 13:06:02 468人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python的tempfile模块怎么用”,在日常操作中,相信很多人在Python的tempfile模块怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的tempfile模块

这篇文章主要介绍“python的tempfile模块怎么用”,在日常操作中,相信很多人在Python的tempfile模块怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的tempfile模块怎么用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、tempfile模块简介

1、tempfile模块应用场景

Pythontempfile模块是用来创建临时文件或者文件夹的跨平台工具。在大型数据处理项目中,有的处理结果是不需要向用户最终展示的,但是它们的应用又是贯穿项目始终的,在这种情况下,我们就需要使用tempfile模块来解决这种问题。

2、tempfile模块的方法

tempfile模块主要包括三类函数:

  • (1)四个高级接口:TemporaryFileNamedTemporaryFileSpooledTemporaryFileTemporaryDirectory,这四个高级接口提供了自动清除功能并且可以作为上下文管理器使用。

函数名描述
TemporaryFile和NamedTemporaryFile高级临时文件对象创建函数
SpooledTemporaryFile假脱机模式高级临时文件对象创建函数
TemporaryDirectory高级临时目录创建函数
  • (2)另外,两个底层函数mkstemp()mkdtemp(),用于生成临时底层的临时文件和文件夹,在使用完它们的时候需要手动清除。

函数名描述
mkstemp()底层临时文件创建函数
mkdtemp()底层临时目录创建函数
  • (3)最后,tempfile模块还有一些针对文件、文件夹属性的操作函数gettempdir()gettempdirb()gettempprefixgettempprefixb

函数名描述
gettempdir()以文本格式返回临时文件夹名函数
gettempdirb()以二进制格式返回临时文件夹名函数
gettempprefix以文本格式返回临时文件名前缀
gettempprefixb以二进制格式返回临时文件名前缀

tempfile的所有用户可调用函数和构造函数都带有额外参数,通过这些参数可以实现对临时文件目录和位置的管理。此模块会在共享临时目录中安全地创建临时文件,并给创建临时文随机起个名。

二、tempfile模块主要函数介绍

高级临时文件对象创建函数:Temporaryfile和NamedTemporaryFile

1、Temporaryfile函数

Temporaryfile函数返回一个类文件对象用作临时存储区,它使用与mkstemp()函数相同规则的安全重建文件模式,它一关闭就会被销毁(包括针对垃圾收集对象的隐式关闭)。需要注意的是,在Unix系统环境,文件的目录要么根本不创建,要么在文件创建后立即删除。也就是说,代码不会依赖于此函数创建的临时文件,包括它们的名称,这也是这个函数与NamedTemporaryfile函数的不同之处。

TemporaryFile函数的调用格式为:

TemporaryFile(mode='w+b', buffering=-1, encoding=None,    newline=None, suffix=None, prefix=None, *, error=None)

函数参数选项:

  • (1)mode参数:默认为w+r,以便文件在被创建时可以执行读写操作。

  • (2)buffering、encoding、errors和newline参数:用于解释open()函数行为。

  • (3) dir、prefix和suffix参数:与mkstemp()具有相同的含义和默认设置。

下面给出一个典型例子:

import tempfile# 下面创建一个临时文件并写入一些数据fp = tempfile.TemporaryFile()fp.write(bb'Hello Xiaoliang!')# 读取数据fp.seek(0);  fp.read()

另外,该函数生成的对象可以用作上下文管理器(参见示例)。完成上下文管理或销毁文件对象后,临时文件将从文件系统中删除。

import tempfilewith tempfile.TemporaryFile() as fp:    fp.write(b'Hello Xiaoliang!')    fp.seek(0)    fp.read()

2、NamedTemporaryfile函数

除了NamedTemporaryfile()函数实现了在文件系统中只有一个可见名之外,其作用与TemporaryFile()功能完全相同。执行完该函数后,我们可以从返回的类文件对象的name属性中检索文件名称。在Unix系统上,在命名的临时文件处于打开状态时,可以使用该名称打开生成的文件。

NamedTemporaryFile函数的调用格式与TemporaryFile函数的非常相似,唯一不同的是具有了一个delete参数:

NamedTemporaryFile(mode='w+b', buffering=-1, encoding=None,    newline=None, suffix=None, prefix=None, dir=Nonde, delete=True,    *, error=None)

delete参数选项:如果该参数为True(默认),则文件一关闭则被删除。返回的对象始终是一个类文件对象,其文件属性是底层的真实文件对象。也就是说,这个类文件对象可以在with上下文管理中使用,就像普通文件一样。

3、假脱机模式高级临时文件对象创建函数:SpooledTemporaryfile

SPOOL技术简介:

SPOOL是Simultaneous Peripheral Operation On-Line
(即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。其实,严格意义上说,SPOOL系统既不同于脱机方式,也不同于直接耦合方式,SPOOL技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。

SpooledTemporaryFile()函数除了数据会在内存中进行假脱机外,与TemporaryFile()完全相同。直到文件大小超过max_size或直到调用文件的fileno()方法,此时使用与TemporaryFile()一样的操作,将内容写入磁盘。

该函数同样返回一个类文件对象,其_file属性可以是io.BytesIO(二进制模式)、io.TextIOWrapper(文本模式)对象或真实的文件对象(调用roller()函数)。同样的,这个类文件对象可以在with上下文管理中使用,就像普通文件一样。

该函数还有一个额外的方法rollover(),它使创建的文件滚寻磁盘上的内容,而不管其大小。SpooledTemporaryFile函数的调用格式与TemporaryFile()函数一样,这里就不介绍了。

4、高级临时目录创建函数:TemporaryDirectory

TemporaryDirectory函数使用与mkdtemp()相同的规则安全地创建临时目录。生成的对象可以用作上下文管理器(这里给出示例)。完成上下文或销毁临时目录对象后,新创建的临时目录及其所有内容将从文件系统中删除。其调用格式如下所示:

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

调用该函数后,创建的目录名可以从返回对象的name属性中检索到。当返回的对象作为上下文管理器时,该名称将被分配给with语句中as子句的目标。另外,可以通过调用cleanup()方法显式清理目标。

5、底层临时文件/目录创建函数:mkstemp和mkdtemp

底层临时文件创建函数mkstemp()

mkstemp()函数以尽可能安全的方式创建临时文件,与TemporaryFile()函数不同,用户需要负责临时文件的删除。其调用格式如下所示:

mkstemp(suffix=None, prefix=None, dir=None, text=False)

函数参数选项:

  • (1)suffix:文件后缀,默认为None。如果不是None,文件名将以设置的后缀结尾。注意,mkstemp()函数不会在文件名和后缀之间加一个点,如果需要可以自行添加。

  • (2)prefix:文件前缀,默认为None。如果不是None,文件以该前缀为开头;否则使用默认前缀,默认的前缀是由gettempprefix()或gettempprefixb()的返回值确定。

  • (3)dir:文件创建的目录,默认为None,如果不是None,则使用默认目录;默认目录是从所使用的系统列表中选择的,但是用户可以通过设置TMPDIR、TEMP或TMP环境变量来控制目录位置。

  • (4)text:文本类型,默认为False,即以二进制模式打开。如果为true,则以文本格式打开。

mkstemp()返回一个元组,该元组包含一个用于打开文件的操作系统级别(OS-leve)句柄(有os.open()函数返回)和该文件绝对路径名。

底层临时目录创建函数mkdtemp()

mkdtemp()函数以尽可能安全的方式创建临时目录。只有通过用户ID才能读取、写入和搜索目录,同时用户负责删除临时目录及其内容。其调用格式和参数与mkstemp()相同,这里就不展开介绍了。注意,mkdtemp()函数只返回新建目录的绝对路径。

三、tempfile模块的文件/文件夹属性操作函数

1、返回临时文件夹名函数:gettempdir和gettempdirb

gettempdir()返回存放临时文件的文件夹名字,该函数的返回值是tempfile内的全局变量,也就是说,gettempdir()返回的文件夹名将作为tempfile模块中的所有函数dir参数的默认值。

Python内部搜索一个标准目录列表,用户可以在其中创建文件的目录:

  • (1)由TMPDIR环境变量命名的目录;

  • (2)由TEMP环境变量命名的目录;

  • (3)由TMP环境变量命名的目录。

  • (4)不同平台特定的位置:

Windows系统,目录为:C:\TEMP, C:\TMP, \TEMP, and \TMP;
其他系统,目录为:/tmp, /var/tmp, and /usr/tmp。

  • (5)当前工作目录。

另外,还有一个与gettempdir()作用相同,只是返回的格式二进制的函数gettempdirb()。

2、返回临时文件前缀函数:gettempprefix和gettempprefix

gettempprefix以文本格式返回创建的临时文件的前缀;gettempprefixb以二进制格式返回创建的临时文件的前缀。

到此,关于“Python的tempfile模块怎么用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Python的tempfile模块怎么用

本文链接: https://lsjlt.com/news/325239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的tempfile模块怎么用
    这篇文章主要介绍“Python的tempfile模块怎么用”,在日常操作中,相信很多人在Python的tempfile模块怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的tempfile模块...
    99+
    2023-06-29
  • python tempfile模块的作用是什么
    tempfile模块是Python标准库中的一个模块,用于创建临时文件和目录。tempfile模块的主要作用包括:1. 创建临时文件...
    99+
    2023-09-29
    python
  • 怎么在python中使用tempfile模块创建临时文件
    本篇文章给大家分享的是有关怎么在python中使用tempfile模块创建临时文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python是什么意思Python是一种跨平台的...
    99+
    2023-06-14
  • python tempfile怎么使用
    Python的`tempfile`模块是用来创建临时文件和临时文件夹的工具。以下是使用`tempfile`模块的一些常见方法:1. ...
    99+
    2023-09-28
    python
  • Python临时文件创建之tempfile模块介绍
    目录一、tempfile模块简介1、tempfile模块应用场景2、tempfile模块的方法二、tempfile模块主要函数介绍1、Temporaryfile函数2、NamedTe...
    99+
    2024-04-02
  • python中的sys模块和os模块怎么用
    今天小编给大家分享一下python中的sys模块和os模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.sys模块...
    99+
    2023-06-29
  • Python中的time模块和calendar模块怎么用
    这篇文章将为大家详细讲解有关Python中的time模块和calendar模块怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在Python中对时间和日期的处理方式有很多,其中转换日期是最常见的一个功...
    99+
    2023-06-25
  • Python的Re模块怎么用
    这篇文章主要介绍Python的Re模块怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基础语法总结1.1、匹配单个字符a . d D w W s S [...] [^...]匹配单个字符(.)规则:匹配除换行...
    99+
    2023-06-17
  • python的command模块怎么用
    Python的`cmd`模块是一个基于类的模块,用于创建交互式命令行解析器。下面是使用`cmd`模块的基本步骤:1. 导入`cmd`...
    99+
    2023-09-27
    python
  • Python的urllib模块怎么用
    这篇文章主要介绍了Python的urllib模块怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python的urllib模块怎么用文章都会有所收获,下面我们一起来看看吧。一、Python urllib 模...
    99+
    2023-06-30
  • 怎么用python tempfile创建文件
    本篇内容主要讲解“怎么用python tempfile创建文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用python tempfile创建文件”吧!说明创建临时文件一般使用的模块就是t...
    99+
    2023-06-30
  • python怎么引用Python模块
    本篇内容介绍了“python怎么引用Python模块”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  import语句  自定义模块可以采用...
    99+
    2023-06-02
  • Python怎么使用模块
    这篇文章给大家分享的是有关Python怎么使用模块的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.1 导入模块import 模块名form 模块名import 功能名form 模块名 import *impor...
    99+
    2023-06-22
  • Python time模块怎么用
    本篇内容主要讲解“Python time模块怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python time模块怎么用”吧!在我们平常的代码中,经常需要和时间打交道。在Python中,...
    99+
    2023-06-27
  • python process模块怎么用
    今天小编给大家分享一下python process模块怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。process可以...
    99+
    2023-06-27
  • python beautifulsoup4模块怎么用
    本篇内容主要讲解“python beautifulsoup4模块怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python beautifulsoup4模块怎么用”吧!...
    99+
    2023-06-30
  • Python的configparser模块怎么使用
    今天小编给大家分享一下Python的configparser模块怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获...
    99+
    2024-04-02
  • python的xlrd模块怎么使用
    这篇文章主要介绍“python的xlrd模块怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python的xlrd模块怎么使用”文章能帮助大家解决问题。xlrd是python语言中用于读取ex...
    99+
    2023-06-27
  • python的os模块怎么使用
    本篇内容介绍了“python的os模块怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!os模块提供了多数操作系统的功能接口函数。当os...
    99+
    2023-06-27
  • Python中的typing模块怎么用
    本篇内容介绍了“Python中的typing模块怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Sublime Text中支持Pyth...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作