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...

Était-ce utile?

La 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()

Autres conseils

file.seek returns None.

You should separated following statement:

print temp.seek(0).read()

into two statements:

temp.seek(0)
print temp.read()
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top