如果我尝试执行下面的代码
f = file('test','rb')
fout = file('test.out','wb')
for i in range(10):
a = f.read(1)
fout.write(a)
f.close()
f = fout
f.seek(4)
print f.read(4)
当'test'
是任意文件名时,我得到:
Traceback (most recent call last):
File "testbad.py", line 12, in <module>
print f.read(4)
IOError: [Errno 9] Bad file descriptor
然而,如果我只更改第四行以使用临时文件:
import tempfile
f = file('test','rb')
fout = tempfile.NamedTemporaryFile()
for i in range(10):
a = f.read(1)
fout.write(a)
f.close()
f = fout
f.seek(4)
print f.read(4)
没有出现错误。有人知道为什么吗?我本来以为第一种情况会起作用,但我一定是做错了什么。
提前感谢任何帮助!