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.
>>> 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) 收藏 举报
浙公网安备 33010602011771号