Python学习:tempfile模块

简介

tempfile模块能够创建临时文件与临时目录。tempfile模块支持所有Python可运行的平台。

模块中TemporaryFile, NamedTemporaryFile, TemporaryDirectory, 与 SpooledTemporaryFile是高级接口,可以实现临时文件与目录的自动清理,而mkstemp()与mkdtemp()是低级别的函数,需要人工清理临时文件与目录。

接口函数

模块提供的接口函数原型与解释如下:

tempfile.TemporaryFile(mode='w+b', buffering=None, encoding=None, 
                       newline=None, suffix=None, prefix=None, 
                       dir=None, *, errors=None)
#函数返回一个file-like对象,创建的临时文件未命名
#如果file-like对象被关闭,或者被垃圾回收器回收,则该临时文件即被销毁
#创建的临时文件目录入口路径无效,因此代码不能依赖该临时文件的存放路径
#临时文件默认模式为'w+b',因此该临时文件可读可写
#buffering、encoding、newline参数解释与open函数相同
#dir、prefix、suffix参数解释与mkstemp函数相同

tempfile.NamedTemporaryFile(mode='w+b', buffering=None, encoding=None, 
                            newline=None, suffix=None, prefix=None, 
                            dir=None, delete=True, *, errors=None)
#该函数执行效果与TemporaryFile函数相同,区别是,该函数创建的临时文件在文件系统中可见
#如果参数delete为True,则当临时文件被关闭,该临时文件也被销毁

tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=None, 
                              encoding=None, newline=None, suffix=None, 
                              prefix=None, dir=None, *, errors=None)
#该函数执行效果与TemporaryFile函数相同,区别是,该函数将文件数据缓存在内存中
#直到文件大小超过max_size,或者文件的fileno()方法被调用,文件内容才被写入磁盘

tempfile.TemporaryDirectory(suffix=None, prefix=None, dir=None)
#该函数创建一个临时目录
#目录的名称可以从该函数返回的对象的name属性获取
#当目录内的文件都被关闭后,该临时目录将被销毁

tempfile.mkstemp(suffix=None, prefix=None, dir=None, text=False)
#该函数创建一个临时文件
#创建的临时文件只能被文件创建用户读或者写,创建的临时文件不具有可执行(x)的属性
#临时文件的文件描述符不能被子进程继承
#调用该函数创建临时文件的用户,有责任删除该临时文件
#参数suffix表示创建的临时文件名称的后缀
#参数prefix表示创建的临时文件名称的前缀
#参数dir表示创建的临时文件的生成路径
#默认的临时文件生成路径一般可通过环境变量TMPDIR、TEMP或者TMP指定
#参数text为False表示以binary模式打开,为True表示以text模式打开
#函数返回一个元组,包含打开临时文件的句柄,以及临时文件的决定路径

tempfile.mkdtemp(suffix=None, prefix=None, dir=None)
#该函数创建一个临时目录
#创建的临时目录只能被创建者进行读、写、搜索操作
#调用该函数创建临时目录的用户,有责任删除该临时目录以及其中的内容
#函数返回临时目录的绝对路径

你可能感兴趣的:(Python,python)