Bad file descriptor error
file, python
Solution
you've only opened the file `fout` for writing, not reading. To open for both use
fout = file('test.out','r+b')
Problem
If I try executing the following code ``` 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) ``` Where `'test'` is any arbitrary file, I get: ``` Traceback (most recent call last): File "testbad.py", line 12, in <module> print f.read(4) IOError: [Errno 9] Bad file descriptor ``` If however, I change just the fout line to use a temporary file: ``` 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) ``` There are no errors. Does anyone know why this is? I would have expected the first case to work, but I must be doing something wrong. Thanks in advance for any help!