@@ -41,8 +41,12 @@ def close(self):
4141 self .closed = 1
4242 del self .buf , self .pos
4343 def isatty (self ):
44+ if self .closed :
45+ raise ValueError , "I/O operation on closed file"
4446 return 0
4547 def seek (self , pos , mode = 0 ):
48+ if self .closed :
49+ raise ValueError , "I/O operation on closed file"
4650 if self .buflist :
4751 self .buf = self .buf + string .joinfields (self .buflist , '' )
4852 self .buflist = []
@@ -52,8 +56,12 @@ def seek(self, pos, mode = 0):
5256 pos = pos + self .len
5357 self .pos = max (0 , pos )
5458 def tell (self ):
59+ if self .closed :
60+ raise ValueError , "I/O operation on closed file"
5561 return self .pos
5662 def read (self , n = - 1 ):
63+ if self .closed :
64+ raise ValueError , "I/O operation on closed file"
5765 if self .buflist :
5866 self .buf = self .buf + string .joinfields (self .buflist , '' )
5967 self .buflist = []
@@ -65,6 +73,8 @@ def read(self, n = -1):
6573 self .pos = newpos
6674 return r
6775 def readline (self , length = None ):
76+ if self .closed :
77+ raise ValueError , "I/O operation on closed file"
6878 if self .buflist :
6979 self .buf = self .buf + string .joinfields (self .buflist , '' )
7080 self .buflist = []
@@ -87,6 +97,8 @@ def readlines(self):
8797 line = self .readline ()
8898 return lines
8999 def write (self , s ):
100+ if self .closed :
101+ raise ValueError , "I/O operation on closed file"
90102 if not s : return
91103 if self .pos > self .len :
92104 self .buflist .append ('\0 ' * (self .pos - self .len ))
@@ -105,7 +117,8 @@ def write(self, s):
105117 def writelines (self , list ):
106118 self .write (string .joinfields (list , '' ))
107119 def flush (self ):
108- pass
120+ if self .closed :
121+ raise ValueError , "I/O operation on closed file"
109122 def getvalue (self ):
110123 if self .buflist :
111124 self .buf = self .buf + string .joinfields (self .buflist , '' )
0 commit comments