Python学习-临时文件

一. tempfile.mkstemp([suffix=”[, prefix=’tmp'[, dir=None[, text=False]]]])
说明:该方法仅仅创建一个临时文件;返回包含两个元素的元组,第一个元素指操作该临时文件的安全级别,第二个元素指该临时文件的路径。

  • 参数suffix和prefix分别表示临时文件名称的后缀和前缀;
  • *参数dir指定了临时文件所在的目录,如果没有指定目录,将根据系统环境变量TMPDIR, TEMP或者TMP的设置来保存临时文件;
  • 参数text指定了是否以文本的形式来操作文件,默认为False,表示以二进制的形式来操作文件。

二. tempfile.TemporaryFile([mode=’w+b'[, bufsize=-1[, suffix=”[, prefix=’tmp'[, dir=None]]]]])
说明:该方法返回一个文件对象用于临时数据保存,它没有文件名字,你也找不到它所在的位置;当文件对象被close或者被del的时候,临时文件将从磁盘上删除。

  • 参数mode、bufsize的用法与open()函数一样;
  • 其他参数同上
temp = tempfile.TemporaryFile()
try:
    print 'temp:', temp
    print 'temp.name:', temp.name
    # 写入
    temp.write('hello world\n')
    temp.seek(0)
    # 读取
    print 'temp.read:', temp.read()
finally:
    # 自动清除文件
    temp.close()  

# 输出结果

temp: ', mode 'w+b' at 0x1004486f0>
temp.name:  # 文件没有名字
temp.read: hello world

三. tempfile.NamedTemporaryFile([mode=’w+b'[, bufsize=-1[, suffix=”[, prefix=’tmp'[, dir=None[, delete=True]]]]]])
说明:同tempfile.TemporaryFile类似,主要区别就是多了个delete参数,用于指定文件对象close或者被del之后,是否也一同删除磁盘上的临时文件(当delete = True的时候,即默认的时候行为与TemporaryFile一样)。

temp = tempfile.NamedTemporaryFile(suffix='.sh', prefix='script_', dir='/tmp')
try:
    temp.write('aaaa\n')
    # 指定从什么位置写入
    temp.seek(0)  
    print temp.read()
finally:
    # 自动清除文件,因为delete参数默认是True
    temp.close()  

注:seek有三种写入模式:seek(offset,where): where=0从起始位置移动,1从当前位置移动,2从结束位置移动。

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

五. tempfile.mkdtemp([suffix=”[, prefix=’tmp'[, dir=None]]])
说明:方法用于创建一个临时文件夹,它返回临时文件夹的绝对路径。

文章参考自:
Python模块学习:tempfile 临时文件(夹)操作

你可能感兴趣的:(Python学习-临时文件)