文件描述符错误

ast*_*rog 17 python file

如果我尝试执行以下代码

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)
Run Code Online (Sandbox Code Playgroud)

'test'任何文件在哪里,我得到:

Traceback (most recent call last):
  File "testbad.py", line 12, in <module>
    print f.read(4)
IOError: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

但是,如果我只更改fout行以使用临时文件:

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)
Run Code Online (Sandbox Code Playgroud)

没有错误.有人知道为什么吗?我原本预计第一个案例会起作用,但我必须做错事.

在此先感谢您的帮助!

cob*_*bal 36

你只打开文件fout写作,而不是阅读.打开两种用途

fout = file('test.out','r+b')
Run Code Online (Sandbox Code Playgroud)