无法在Python中从临时文件读取
我在写一个小的Python脚本时,想使用一些临时文件,但在使用tempfile模块时遇到了问题:
测试代码
import tempfile
with tempfile.NamedTemporaryFile() as temp:
print temp.name
temp.write('Some data')
print temp.seek(0).read()
输出结果
s$ python tmpFileTester.py
/var/folders/cp/8kmr4fhs4l94y8fdc6g_84lw0000gn/T/tmpcDgrzF
错误追踪
(最近的调用最后): 文件 "tmpFileTester.py",第5行,在这里
print temp.seek(0).read() 属性错误: 'NoneType'对象没有'read'这个属性
--> 这个问题出现在我的MacBook上,系统是MacOS 10.9,使用的是Python 2.7.5,设置"delete=False"时也会出现同样的问题。
有没有什么想法?这可能是个新手错误,但我找不到问题所在...
2 个回答
2
file.seek
这个函数会返回 None
。
你应该把下面的语句分开:
print temp.seek(0).read()
变成两个语句:
temp.seek(0)
print temp.read()
3
每当你在Python中连续调用多个方法时,如果出现了这个问题,你可以肯定其中一个方法返回了None
(即使是因为没有返回任何东西而隐式返回的)。解决这个问题的办法通常是把这些方法分开,写在多行上。
temp.seek(0)
print temp.read()