Index: Doc/library/tempfile.rst =================================================================== --- Doc/library/tempfile.rst (revision 71822) +++ Doc/library/tempfile.rst (working copy) @@ -76,7 +76,10 @@ .. versionadded:: 2.6 The *delete* parameter. + .. versionadded:: 2.7 + The *remove* method. + .. function:: SpooledTemporaryFile([max_size=0, [mode='w+b'[, bufsize=-1[, suffix=''[, prefix='tmp'[, dir=None]]]]]]) This function operates exactly as :func:`TemporaryFile` does, except that @@ -177,7 +180,7 @@ '/var/folders/5q/5qTPn6xq2RaWqk+1Ytw3-U+++TI/-Tmp-/tmpG7V1Y0' >>> f.write("Hello World!\n") >>> f.close() - >>> os.unlink(f.name) + >>> f.remove() >>> os.path.exists(f.name) False Index: Lib/tempfile.py =================================================================== --- Lib/tempfile.py (revision 71822) +++ Lib/tempfile.py (working copy) @@ -30,6 +30,7 @@ # Imports. import os as _os +from os.path import isfile as _isfile import errno as _errno from random import Random as _Random @@ -412,7 +413,12 @@ self.close() return result + def remove(self): + if not _isfile(self.name): + return + _os.remove(self.name) + def NamedTemporaryFile(mode='w+b', bufsize=-1, suffix="", prefix=template, dir=None, delete=True): """Create and return a temporary file. Index: Lib/test/test_tempfile.py =================================================================== --- Lib/test/test_tempfile.py (revision 71822) +++ Lib/test/test_tempfile.py (working copy) @@ -637,6 +637,16 @@ pass self.failUnlessRaises(ValueError, use_closed) + def test_remove(self): + f = tempfile.NamedTemporaryFile(delete=False) + f.close() + f.remove() + self.failIf(os.path.exists(f.name)) + try: + f.remove() + except: + self.failOnException("remove") + # How to test the mode and bufsize parameters? test_classes.append(test_NamedTemporaryFile)