当我们在使用一些第三方工具时,我们总会看到这些工具在运行时会生成一个临时文件,文件中会记录一下工具启动时所生成的pid,那么python程序是否也可以做到这一点呢,答案是可以的,这里我们就用到了tempfile模块,该模块是内置库,不要手动安装,下面简单记录下该模块的使用方法

这篇文章主要记录的是tempfile模块TemporaryFile方法的使用,
TemporaryFile 在调用时,会临时创建一个二进制文件,该文件可用于读和写,在调用文件对象close()方法时,文件会被删除,或者在程序退出时同样会被删除

mode:写入模式,默认值为”w+b”,二进制写入,当需要写入文本时,可传入”w+t”

TemporaryFile方法有7个参数,皆为可选参数,主要介绍一下常用的几个参数

buffering:缓冲区大小,默认值为”-1″

encoding:编码参数,默认None

newline:换行参数,默认None

suffix:所生成临时文件格式,默认为None,当该参数为None时,所生成文件为无格式文件,通过该参数可生成指定文件格式,比如”.txt”

prefix:所生成临时文件的文件名,默认为None,当该参数为None时,所生成文件名为”tmp”+随机8位字符串,指定后文件名为prefix+随机8位字符串

dir:指定临时文件存放路径,默认为None,当参数为None时,存放路径为该用户临时目录

使用示例:

# 模块导入
import time
import os
import tempfile


# 创建一个死循环函数,防止程序退出,导致看不到临时文件生成效果
def a():
    while 1:
        print(1111)
        time.sleep(99999)


if __name__ == '__main__':
    # 获取该程序pid
    p = os.getpid()
    # 生成临时文件对象,指定mode、dir和suffix
    w = tempfile.TemporaryFile(mode='w+t', dir=".", suffix=".txt")
    # 将pid写入(这里需将pid转换成字符串,不然无法写入)
    w.write(str(p))
    # 移动光标到文件开始
    w.seek(0)
    # 读取临时文件内容
    print(w.read())
    a()

也可使用with语句来创建临时文件:

    with tempfile.TemporaryFile(mode='w+t', dir=".", suffix=".txt") as w:
        # 将pid写入(这里需将pid转换成字符串,不然无法写入)
        w.write(str(p))
        # 移动光标到文件开始
        w.seek(0)
        # 读取临时文件内容
        print(w.read())

注意,如果使用with语句创建临时文件,那么在with语句执行完成后被创建的临时文件会被销毁。

以上就是TemporaryFile临时文件的创建方法,仅供参考

打赏

发表评论

邮箱地址不会被公开。 必填项已用*标注