5-6 如何使用临时文件

一、TemporaryFile

TemporaryFile创建的文件,不能由绝对路径找到,只能通过文件对象找到访问

>>> help(TemporaryFile)
Help on function NamedTemporaryFile in module tempfile:

NamedTemporaryFile(mode='w+b', bufsize=-1, suffix='', prefix='tmp', dir=None, delete=True)
    Create and return a temporary file.
    Arguments:
    'prefix', 'suffix', 'dir' -- as for mkstemp.
    'mode' -- the mode argument to os.fdopen (default "w+b").
    'bufsize' -- the buffer size argument to os.fdopen (default -1).
    'delete' -- whether the file is deleted on close (default True).
    The file is created as mkstemp() would do it.
    
    Returns an object with a file-like interface; the name of the file
    is accessible as its 'name' attribute.  The file will be automatically
    deleted when it is closed unless the 'delete' argument is set to False.
help(TemporaryFile)
>>> f = TemporaryFile()     #创建一个临时文件
>>> f.write('abcdef'*10000)  #将数据写入这个临时文件,这样数据写入的磁盘内,就不在内存中了,不会占用大量内存
>>> f.read(100)              #读数据时一部分一部分读取
'efabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefab'

二、NamedTemporaryFile

NamedTemporaryFile创建的文件,可以由绝对路径找到。临时文件关闭后也会自动删除

>>> ntf = NamedTemporaryFile()   #创建带有文件名的临时文件
>>> ntf.name                     #此属性描述了在文件系统下的路径
'c:\\users\\dev\\appdata\\local\\temp\\tmprkd4lw'

如若使临时文件关闭后不自动删除 可以修改delete参数指定 为false

>>> ntf = NamedTemporaryFile(delete = False)
>>> ntf.name
'c:\\users\\dev\\appdata\\local\\temp\\tmpxyzm3p'

重新创建使用这个对象时,原来的文件对象会被垃圾回收自动关闭,但仍然存在

 

posted on 2018-04-25 09:58  石中玉smulngy  阅读(136)  评论(0)    收藏  举报

导航