Python模块学习之tempfile 临时文件、临时文件夹

发布时间:2021-01-08编辑:脚本学堂
本文学习下python模块 tempfile的用法,tempfile模块用于处理临时文件与临时文件夹,有需要的朋友参考下。

python编程中,经常要保存一些临时的信息,这些信息不是特别重要,没有必要写在配置文件里,但又不能没有,此时就可以把这些信息写到临时文件里。

其实很多程序在运行时,都会产生一大堆临时文件,有些用于保存日志,有些用于保存一些临时数据,还有一些保存一些无关紧要的设置。在windows操作系统中,临时文件一般被保存在这个文件夹下:C:/Documents and Settings/User/Local Settings/Temp。

其实,最常用的IE浏览器在浏览网页时,会产生大量的临时文件,这些临时文件一般是我们浏览过的网页的本地副本。Python提供了一个tempfile模块,用来对临时数据进行操作。
查阅Python手册,有如下常用的方法:tempfile.mkstemp([suffix=''[, prefix='tmp'[, dir=None[, text=False]]]])

 mkstemp方法用于创建一个临时文件。该方法仅仅用于创建临时文件,调用tempfile.mkstemp函数后,返回包含两个元素的元组,第一个元素指示操作该临时文件的安全级别,第二个元素指示该临时文件的路径。
 参数suffix和prefix分别表示临时文件名称的后缀和前缀;dir指定了临时文件所在的目录,如果没有指定目录,将根据系统环境变量TMPDIR, TEMP或者TMP的设置来保存临时文件;参数text指定了是否以文本的形式来操作文件,默认为False,表示以二进制的形式来操作文件。

tempfile.mkdtemp([suffix=''[, prefix='tmp'[, dir=None]]])
    该函数用于创建一个临时文件夹。参数的意思与tempfile.mkdtemp一样。它返回临时文件夹的绝对路径

tempfile.mktemp([suffix=''[, prefix='tmp'[, dir=None]]])
    mktemp用于返回一个临时文件的路径,但并不创建该临时文件。

tempfile.tempdir
    该属性用于指定创建的临时文件(夹)所在的默认文件夹。如果没有设置该属性或者将其设为None,Python将返回以下环境变量TMPDIR, TEMP, TEMP指定的目录,如果没有定义这些环境变量,临时文件将被创建在当前工作目录。

tempfile.gettempdir()
    gettempdir()则用于返回保存临时文件的文件夹路径。

tempfile.TemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]])
    该函数返回一个 类文件 对象(file-like)用于临时数据保存(实际上对应磁盘上的一个临时文件)。当文件对象被close或者被del时,临时文件将从磁盘上删除。mode、bufsize参数的单方与open()函数一样;suffix和prefix指定了临时文件名的后缀和前缀;dir用于设置临时文件默认的保存路径。返回的类文件对象有一个file属性,它指向真正操作的底层的file对象。

tempfile.NamedTemporaryFile([mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None[, delete=True]]]]]])
    tempfile.NamedTemporaryFile函数的行为与tempfile.TemporaryFile类似,只不过它多了一个delete参数,用于指定类文件对象close或者被del之后,是否也一同删除磁盘上的临时文件(当delete = True时,行为与TemporaryFile一样)。

tempfile.SpooledTemporaryFile([max_size=0[, mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]]])
    tempfile.SpooledTemporaryFile函数的行为与tempfile.TemporaryFile类似。不同的是向类文件对象写数据时,数据长度只有到达参数max_size指定大小时,或者调用类文件对象的fileno()方法,数据才会真正写入到磁盘的临时文件中。

由以上可以看出tempfile模块是一个简单而实用的python模块,建议大家认真学习掌握之。