file object: seek and close?
Shu-Hsien Sheu
sheu at bu.edu
Thu Sep 18 13:41:24 EDT 2003
Hi,
I did some tests and it seems that it was the line that I defined list
as a pdbdict0 object was causing the problem.
If I remove the line:
list = pdbdict0()
there would be no IOError messages.
I tried defining list as a dictionary, and there was IOError as well.
However, if I defined list as a list, or defined any variable other than
'list' as dict, it would be just fine. Really weird.
If I remove the seek method, there would be no IOError message either.
It seems that, f.seek plus ' list = somekind of dictionary' caused the
file object to close.
Great thanks!
-shuhsien
----------------------------------------------------------------------------------------------------------------------------
class pdbdict0(dict):
def __init__(self):
super(dict, self).__init__()
self['header'] = ''
self['compnd'] = []
# read the pdb file
f = open('Z:\\3.4.21.1\\1acb.pdb', 'r')
# check if the file is an old type pdb (type = 0) or a new type pdb
(type = 1)
type = 0
for lines in f:
if lines[:6] == 'TITLE':
type = 1
if lines[:6] == 'COMPND':
break
f.seek(0)
# read in the information
if type == 0:
list = pdbdict0() # << this line seems to be causing the file
object to close
for lines in f:
lines = lines[:70]
..........................................................................
Traceback (most recent call last):
File "C:\Documents and Settings\sheu\My
Documents\precise\parspdbtest0.py", line 27, in -toplevel-
for lines in f:
ValueError: I/O operation on closed file
----------------------------------------------------------------------------------------------------------------------------------------------
More information about the Python-list
mailing list