tempfile 这个模块主要是用来创建临时文件和目录,用完后会自动删除,省的你自己去创建一个文件、使用这个文件、再删除这个过程了。其中比较常用的是TemporaryFile和NamedTemporaryFile,其他觉得简单看看就可以了。
TemporaryFile 创建一个临时文件,关闭时自动删除 In [81]: tmp = tempfile.TemporaryFile() In [82]: type(tmp) Out[82]: file In [83]: tmp.write('I am lee\n') In [84]: tmp.seek(0) In [85]: tmp.read() Out[85]: 'I am lee\n’ #调用close()后文件就自动删除了 In [86]: tmp.close()NamedTemporaryFile 类似于TemporaryFile,创建一个临时文件,可以得到文件名,delete参数决定文件关闭时是否删除
In [89]: tmp = tempfile.NamedTemporaryFile() #通过name属性可以获取到文件名 In [90]: tmp.name Out[90]: '/tmp/tmpijT5Aj' In [91]: os.path.exists(tmp.name) Out[91]: True In [92]: tmp.write("I am lee\n") In [93]: tmp.seek(0) In [94]: tmp.read() Out[94]: 'I am lee\n' #调用close()后文件名被删除了 In [95]: tmp.close() In [96]: os.path.exists(tmp.name) Out[96]: False这两个函数说明文档里都有这么一句:This file-like object can be used in a with statement, just like a normal file.所以也可以配合with使用,省的再处理文件关闭之类的事情了
In [100]: with tempfile.NamedTemporaryFile() as tmp: .....: print tmp.name .....: tmp.write("I am lee\n") .....: tmp.seek(0) .....: print tmp.read() .....: print os.path.exists(tmp.name) .....: /tmp/tmp9U67Og I am lee True #文件已经被删除 In [101]: print os.path.exists(tmp.name) False 参考资料:官方tempfile模块: https://docs.python.org/2.7/library/tempfile.html#module-tempfile
Python模块学习――tempfile: http://www.cnblogs.com/captain_jack/archive/2011/01/19/1939555.html
Python 学习笔记: http://wiki.jikexueyuan.com/project/the-python-study-notes-second-edition/files-and-directories.html
← python os.walk 学习小结