Question

I am trying to use some temporary files in an little python script and running into problems while using the tempfile-module:

test-code

import tempfile
with tempfile.NamedTemporaryFile() as temp:
    print temp.name
    temp.write('Some data')
    print temp.seek(0).read()

output

s$ python tmpFileTester.py

/var/folders/cp/8kmr4fhs4l94y8fdc6g_84lw0000gn/T/tmpcDgrzF

Traceback

(most recent call last): File "tmpFileTester.py", line 5, in print temp.seek(0).read() AttributeError: 'NoneType' object has no attribute 'read'

--> This happens on my MacBook with MacOS 10.9 and Python 2.7.5, it also happens with "delete=False".

Any ideas? It's probably a noob-error, but I can't find the problem...

Was it helpful?

Solution

Whenever you are chaining methods in Python and you get this, you can bet that one of them returns None (even if implicitly by not returning at all). The solution is generally to split up the chain over multiple lines.

temp.seek(0)
print temp.read()

OTHER TIPS

file.seek returns None.

You should separated following statement:

print temp.seek(0).read()

into two statements:

temp.seek(0)
print temp.read()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top