错误的文件描述符错误
问题描述:
如果我尝试执行以下代码错误的文件描述符错误
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
但是,如果我改变只是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)
没有错误。有人知道为什么吗?我希望第一个案例能够奏效,但我一定在做错事。
在此先感谢您的帮助!
答
您只打开文件fout
进行书写,而不是阅读。要打开都使用
fout = file('test.out','r+b')
我不知道,如果/当事情发生了变化,但根据当前的文档,以及我个人的经验,你现在需要使用“R +”或“R + B”打开文件的阅读和写作https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files – JonoCoetzee 2015-07-17 09:35:10
@JonoCoetzee看来,这两个工作等效,但我已经编辑它是更好与文档保持一致。谢谢。 – cobbal 2015-07-18 04:46:36