Python使用tempfile创建临时文件,并写入程序pid
当我们在使用一些第三方工具时,我们总会看到这些工具在运行时会生成一个临时文件,文件中会记录一下工具启动时所生成的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临时文件的创建方法,仅供参考