NamedTemporaryFile does not match documentation

Serhiy Storchaka storchaka at gmail.com
Thu Feb 21 22:30:00 CET 2013


On 21.02.13 22:46, Jason Friedman wrote:
> Python 3.2.2 (default, Feb 14 2012, 08:06:31)
> [GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from tempfile import NamedTemporaryFile
>>>> f = NamedTemporaryFile(delete=False)
>>>> f
> <tempfile._TemporaryFileWrapper object at 0x7f867e8bc050>
>>>> f.name
> '/tmp/tmpqxnd_4'
>>>> f.write("Hello World!\n")
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> TypeError: 'str' does not support the buffer interface
>
> Or, maybe I am reading the documentation incorrectly.  My goal is to
> be able to write to that temporary file along the lines of "f.write()"
> or "with open(f) as writer ...".

NamedTemporaryFile by default opens a file in binary mode ('w+b'). Write 
bytes or specify text mode.

 >>> f.write(b"Hello World!\n")
13
 >>> ft = NamedTemporaryFile('w+', delete=False)
 >>> ft.write("Hello World!\n")
13





More information about the Python-list mailing list